最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

獲取wince mac地址與IP地址解決方案

 更新時間:2012年12月02日 15:46:45   作者:  
由于需要進行身份的驗證,需要獲取移動終端的MAC地址,于是在網(wǎng)上進行搜索整理一番,現(xiàn)在將實現(xiàn)獲取MAC地址的方法與大家共享
本人所使用的開發(fā)環(huán)境是VS2008,開發(fā)的系統(tǒng)所在移動終端版本為windows mobile 5.0。由于需要進行身份的驗證,需要獲取移動終端的MAC地址,于是在網(wǎng)上進行搜索,主要看到了三種方法來實現(xiàn)獲取MAC地址,現(xiàn)記錄如下。

第一種方法:使用ManagementClass 來獲取。
殊不知,WinCE下并沒有System.Management,這種方法根本行不通。

第二種方法:通過查找注冊表來獲取MAC地址。
這是獲取注冊表地址的代碼:
復(fù)制代碼 代碼如下:

txtMAC1.Text = reg.ReadValue(YFReg.HKEY.HKEY_LOCAL_MACHINE, @"Comm\DM9CE1\Parms", "SoftwareMacAddress0");

其他的代碼我這里就不列出來了,用這種方法我并沒有獲取到MAC地址。于是在網(wǎng)上下載了一個注冊表查看工具,在移動終端中找,找遍了,發(fā)現(xiàn)并沒有Comm\DM9CE1\Parms路徑,再找其他的路徑,都沒找到有SoftwareMacAddress節(jié)點的。好吧,可能這種方法能獲取MAC地址,但是我這個版本的不行。

第三種方法:通過SendARP獲取MAC地址。
代碼如下:
復(fù)制代碼 代碼如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections;
using System.Diagnostics;
using System.Runtime.InteropServices;
using System.IO;
using System.Security.Cryptography;
using System.Net;
namespace WirelessRouteSystem
{
class SysInfo
{
private static string[] strEncrypt = new string[] { "1", "2", "3", "4", "5", "6", "7", "8", "9", "0", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z", "AA", "AB", "AC", "AD", "AE", "AF", "AG", "AH", "AI", "AJ", "AK", "AL", "AM", "AN", "AO", "AP" };
private static Int32 METHOD_BUFFERED = 0;
private static Int32 FILE_ANY_ACCESS = 0;
private static Int32 FILE_DEVICE_HAL = 0x00000101;
private const Int32 ERROR_NOT_SUPPORTED = 0x32;
private const Int32 ERROR_INSUFFICIENT_BUFFER = 0x7A;
private static Int32 IOCTL_HAL_GET_DEVICEID = ((FILE_DEVICE_HAL) << 16) | ((FILE_ANY_ACCESS) << 14) | ((21) << 2) | (METHOD_BUFFERED);
[DllImport("coredll.dll", SetLastError = true)]
private static extern bool KernelIoControl(Int32 dwIoControlCode, IntPtr lpInBuf, Int32 nInBufSize, byte[] lpOutBuf, Int32 nOutBufSize, ref Int32 lpBytesReturned);
[DllImport("Iphlpapi.dll", EntryPoint = "SendARP")]
public static extern uint SendARP(uint DestIP, uint SrcIP, byte[] pMacAddr, ref uint PhyAddrLen);
/// <summary>
/// 獲取MAC地址
/// </summary>
/// <returns></returns>
public string GetMac()
{
uint ip = 0;
string mac = string.Empty;
//取本機IP列表
IPAddress[] ips = Dns.GetHostEntry(Dns.GetHostName()).AddressList;
//取本機IP
byte[] ipp = ips[1].GetAddressBytes();
ip = (uint)((ipp[0]) | (ipp[1] << 8) | (ipp[2] << 16) | (ipp[3] << 24));
//取MAC
byte[] MacAddr = new byte[6];
uint PhyAddrLen = 6;
uint hr = SendARP(ip, 0, MacAddr, ref PhyAddrLen);
if (MacAddr[0] != 0 || MacAddr[1] != 0 || MacAddr[2] != 0 || MacAddr[3] != 0 || MacAddr[4] != 0 || MacAddr[5] != 0)
{
mac = MacAddr[0].ToString("X2") + ":" + MacAddr[1].ToString("X2") + ":" + MacAddr[2].ToString("X2") + ":" + MacAddr[3].ToString("X2") + ":" + MacAddr[4].ToString("X2") + ":" + MacAddr[5].ToString("X2");
}
return mac;
}
/// <summary>
///獲取本機IP
/// </summary>
/// <returns></returns>
public string GetIpAddress()
{
string strHostName = Dns.GetHostName(); //得到本機的主機名
IPHostEntry ipEntry = Dns.GetHostByName(strHostName); //取得本機IP
string strAddr = ipEntry.AddressList[1].ToString();
return strAddr;
}
}
}

通過 IP Helper API 中的 SendARP 發(fā)送 ARP 請求可以用來獲取指定IP地址的MAC 地址,簡單方便,缺點是不能跨越網(wǎng)關(guān)。
至于獲取IP地址,本文已經(jīng)給出了兩種方法,都是通過NET下DNS類中方法獲取。

相關(guān)文章

  • C#實現(xiàn)BBcode轉(zhuǎn)為Markdown的方法

    C#實現(xiàn)BBcode轉(zhuǎn)為Markdown的方法

    這篇文章主要給大家介紹了關(guān)于C#實現(xiàn)BBcode轉(zhuǎn)Markdown的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧。
    2018-02-02
  • 總結(jié)C#處理異常的方式

    總結(jié)C#處理異常的方式

    這篇文章介紹了C#處理異常的方式總結(jié),文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-12-12
  • C#中的modbus Tcp協(xié)議的數(shù)據(jù)抓取和使用解析

    C#中的modbus Tcp協(xié)議的數(shù)據(jù)抓取和使用解析

    這篇文章主要介紹了C#中的modbus Tcp協(xié)議的數(shù)據(jù)抓取和使用解析,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-07-07
  • C#實現(xiàn)FTP上傳文件的方法

    C#實現(xiàn)FTP上傳文件的方法

    這篇文章介紹了C#實現(xiàn)FTP上傳文件的方法,文中通過示例代碼介紹的非常詳細。對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-04-04
  • C#實現(xiàn)剪切板功能

    C#實現(xiàn)剪切板功能

    這篇文章主要為大家詳細介紹了C#實現(xiàn)剪切板功能,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-07-07
  • C# 抽象類,抽象屬性,抽象方法(實例講解)

    C# 抽象類,抽象屬性,抽象方法(實例講解)

    下面小編就為大家分享一篇C# 抽象類,抽象屬性,抽象方法的實例講解,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2017-12-12
  • C#中的匿名方法實例解析

    C#中的匿名方法實例解析

    這篇文章主要介紹了C#中的匿名方法,包括其由來、定義及用法等,需要的朋友可以參考下
    2014-09-09
  • Unity實現(xiàn)旋轉(zhuǎn)扭曲圖像特效

    Unity實現(xiàn)旋轉(zhuǎn)扭曲圖像特效

    這篇文章主要為大家詳細介紹了Unity實現(xiàn)旋轉(zhuǎn)扭曲圖像特效,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • C#緩存之SqlCacheDependency用法實例總結(jié)

    C#緩存之SqlCacheDependency用法實例總結(jié)

    這篇文章主要介紹了C#緩存之SqlCacheDependency用法,在C#程序設(shè)計中有一定的實用價值,需要的朋友可以參考下
    2014-08-08
  • C#取得隨機顏色的方法

    C#取得隨機顏色的方法

    這篇文章主要介紹了C#取得隨機顏色的方法,通過自定義函數(shù)實現(xiàn)隨機顏色的功能,非常具有實用價值,需要的朋友可以參考下
    2015-01-01

最新評論

洪湖市| 杂多县| 闵行区| 横山县| 仙居县| 怀安县| 仙居县| 门头沟区| 江源县| 满城县| 札达县| 康定县| 若尔盖县| 平度市| 铜鼓县| 榕江县| 海兴县| 浦江县| 新邵县| 嵩明县| 信阳市| 涿鹿县| 曲周县| 海林市| 鄱阳县| 黄浦区| 凤阳县| 准格尔旗| 五常市| 大洼县| 温泉县| 句容市| 凤城市| 平罗县| 屏边| 锡林郭勒盟| 和政县| 承德市| 南木林县| 高邮市| 苍溪县|