专注于互联网--专注于架构

最新标签
网站地图
文章索引
Rss订阅

首页 »DotNet » 代码共享-获取内外网IP及物理网卡地址 »正文

代码共享-获取内外网IP及物理网卡地址

来源: 发布时间:星期一, 2008年10月27日 浏览:2次 评论:0
using System;
using System.IO;
using System.Net;
using System.Text;
using System.Net.Sockets;
using System.Text.RegularExpressions;
using System.Management;
class IP
{
static void Main(string[] args)
{
Console.WriteLine("*************longingzone.com*************");
Console.WriteLine("****************胡熙明制作***************");
Console.WriteLine("******联系:[email protected]******");
Console.WriteLine("**********Current IP addresses:**********");
System.Net.IPAddress[] addressList = Dns.GetHostByName(Dns.GetHostName()).AddressList;//获取本机内网IP
Console.WriteLine("内网IP: " + addressList[0].ToString());
try
{
Uri uri = new Uri("http://www.ikaka.com/ip/index.asp");//查本机网络IP的网页
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(uri);
req.Method = "POST";
req.ContentType = "application/x-www-form-urlencoded";
req.ContentLength = 0;
req.CookieContainer = new CookieContainer();
req.GetRequestStream().Write(new byte [0], 0, 0);
HttpWebResponse res = (HttpWebResponse)(req.GetResponse());
StreamReader rs = new StreamReader(res.GetResponseStream(), Encoding.GetEncoding("GB18030"));
string s = rs.ReadToEnd();
rs.Close();
req.Abort();
res.Close();
Match m = Regex.Match(s, @"IP:\[(?<IP>[0-9\.]*)\]");
if (m.Success)
Console.WriteLine("公网IP: " + m.Groups["IP"].Value + "");
System.Management.ManagementClass mc = new System.Management.ManagementClass("Win32_NetworkAdapterConfiguration");
System.Management.ManagementObjectCollection moc = mc.GetInstances();
foreach(System.Management.ManagementObject mo in moc)
{
if((bool)mo["IPEnabled"] == true)
Console.WriteLine("网卡地址:" + mo["MacAddress"].ToString());
}
}
catch
{
Console.WriteLine("无法获取公网IP,可能原因:无法连接网络");
}
Console.Write("按回车键退出程序");
Console.Read();
}
}

相关文章

读者评论

  • 共0条 分0页

发表评论

  • 昵称:
  • 内容: