国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > C# > 正文

C#獲取路由器外網IP,MAC地址的實現代碼

2019-10-29 21:18:46
字體:
來源:轉載
供稿:網友

C#實現的獲取路由器MAC地址,路由器外網地址。對于要獲取路由器MAC地址,一定需要知道路由器web管理系統的用戶名和密碼。至于獲取路由器的外網IP地址,可以不需要知道路由器web管理系統的用戶名和密碼,但是需要有一個代理頁面獲取客戶端公網ip地址的,這樣C#請求此頁面即可獲取到路由器公網ip地址。如

//getip.ashx

測試路由為水星 MR804,水星 MR808,都可以成功重啟路由和獲取到路由器MAC和外網IP地址

源代碼

using System.Text;using System.Net;using System.Text.RegularExpressions;using System.IO;public class Router{  Encoding gb2312 = Encoding.GetEncoding(936);//路由器的web管理系統默認編碼為gb2312  /// <summary>  /// 使用HttpWebRequest對象發送請求  /// </summary>  /// <param name="url"></param>  /// <param name="encoding">編碼</param>  /// <param name="cache">憑證</param>  /// <returns></returns>  private static string SendRequest(string url, Encoding encoding,CredentialCache cache)  {   HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);   if (cache != null)   {    request.PreAuthenticate = true;    request.Credentials = cache;   }   string html = null;   try   {    HttpWebResponse response = (HttpWebResponse)request.GetResponse();    StreamReader srd = new StreamReader(response.GetResponseStream(), encoding);    html = srd.ReadToEnd();    srd.Close();    response.Close();   }   catch (Exception ex) { html = "FALSE" + ex.Message; }   return html;  }  /// <summary>  /// 獲取路由MAC和外網IP地址  /// </summary>  /// <param name="RouterIP">路由IP地址,就是網關地址了,默認192.168.1.1</param>  /// <param name="UserName">用戶名</param>  /// <param name="Passowrd">密碼</param>  /// <returns></returns>  private string LoadMACWanIP(string RouterIP,string UserName,string Passowrd)  {   CredentialCache cache = new CredentialCache();   string url = "http://" + RouterIP + "/userRpm/StatusRpm.htm";   cache.Add(new Uri(url), "Basic", new NetworkCredential(UserName, Passowrd));   return SendRequest(url, gb2312, cache);  }}

MFC 獲取外網IP地址和MAC地址

ip地址獲取:

CString GetSystemIp(void) {  CString csSource;  CString csAddress;  CString csIPAddress;  csIPAddress.Format(_T(" "));  CInternetSession mySession(NULL,0);  CHttpFile* myHttpFile=NULL;  csAddress=_T("http://iframe.ip138.com/ic.asp");//ip138網頁 http://www.ip138.com/ip2city.asp  myHttpFile=(CHttpFile*)mySession.OpenURL(csAddress);//讀取網絡地址  while(myHttpFile->ReadString(csSource))  { //循環讀取下載來的網頁文本   //code 轉換   char *pStr = (char*)csSource.GetBuffer(csSource.GetLength()); //取得str對象的原始字符串   int nBufferSize = MultiByteToWideChar(CP_UTF8, 0,pStr, -1, NULL, 0); //取得所需緩存的多少   wchar_t *pBuffer = (wchar_t*)malloc(nBufferSize * sizeof(wchar_t));//申請緩存空間   MultiByteToWideChar(CP_UTF8, 0, pStr, -1 , pBuffer, nBufferSize*sizeof(wchar_t));//轉碼   //MessageBox(pBuffer); //顯示   csSource.Format(_T("%s"),pBuffer);   free(pBuffer); //釋放緩存    int begin=0;   begin=csSource.Find(_T("["),0);   if(begin!=-1)//如果找到"[", 則找"]" 中括號內的文本則是 你的外網ip   {    int end=csSource.Find(_T("]"));    csIPAddress.Format(_T("%s"),csSource.Mid(begin+1,end-begin-1));//提取外網ip    return csIPAddress;   }  }  return csIPAddress; } 

MAC地址獲取:

CString GetMacAddress(void) {  //CString strIP,strGateWay,strSubnetMask;  CString strMac;  strMac.Format(_T(""));  u_char pMac[6];  PIP_ADAPTER_INFO adp = NULL;  ULONG uLong=0;  //為適配器申請內存  ::GetAdaptersInfo(adp,&uLong);  adp = (PIP_ADAPTER_INFO)::GlobalAlloc(GPTR,uLong);   //取得本地適配器結構信息  if(::GetAdaptersInfo(adp,&uLong) == ERROR_SUCCESS)  {   if(adp != NULL)   {    //strMacAdd.Format("%s",adp->Address);    memcpy(pMac,adp->Address,6);    strMac.Format(_T("%02X-%02X-%02X-%02X-%02X-%02X"),pMac[0],pMac[1],pMac[2],pMac[3],pMac[4],pMac[5]);    //strGateWay.Format(_T("%s"),adp->GatewayList.IpAddress.String);// 網關    //strIP.Format(_T("%s"),adp->IpAddressList.IpAddress.String);//IP    //strSubnetMask.Format(_T("%s"),adp->IpAddressList.IpMask.String);//子網掩碼    //MessageBox(strMac);   }  }  return strMac; } 

 

 

注:相關教程知識閱讀請移步到c#教程頻道。
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 克拉玛依市| 富平县| 阿坝县| 江源县| 长葛市| 陕西省| 温宿县| 波密县| 桂阳县| 北京市| 武威市| 舞阳县| 吉水县| 阜城县| 古浪县| 浏阳市| 四会市| 望江县| 定州市| 金阳县| 石台县| 观塘区| 平邑县| 体育| 宁安市| 自治县| 鹰潭市| 马边| 湖南省| 惠东县| 延吉市| 张家港市| 菏泽市| 镶黄旗| 兴山县| 梨树县| 贞丰县| 肥乡县| 洛宁县| 南京市| 南城县|