首页 > 代码库 > 关于获得本机外网IP地址的问题

关于获得本机外网IP地址的问题

    改了个系统中的小功能,显示在线用户的IP地址和MAC地址,用到了这几个方法,记录下。

方法1,获得IP地址:

                string ipAddress  = "";                WebRequest wr =WebRequest.Create("http://1212.ip138.com/ic.asp");                Stream s = wr.GetResponse().GetResponseStream();                StreamReader sr = new StreamReader(s, Encoding.Default);                string all = sr.ReadToEnd(); //读取网站的数据                int start = all.IndexOf("您的IP是:[") + 7;                int end = all.IndexOf("]", start);                ipAddress = all.Substring(start, end - start);

方法2,可以通过引用using System.Net进行获取,不过由于我这边是自动获取IP的所以没有采用这种方法

        string hostName = Dns.GetHostName();            IPHostEntry Entry = Dns.GetHostByName(Dns.GetHostName());            IPAddress pAddress = new IPAddress(Entry.AddressList[0].Address);//内网地址            IPAddress wAddress = new IPAddress(Entry.AddressList[1].Address);//外网地址 但是对于使用自动获取IP的本机,则无法取得外网的IP

之前也看了园子里其他人使用的方法,大多都是方法1吧,

"http://1212.ip138.com/ic.asp"这个

网址可能会发生变化,第一次用的时候是拷贝别人的代码网址没有改,发现没有获取到IP查看了网页的源码,发现显示IP的地方用iframe跳转了一下,然后我把链接改为了iframe跳转的网页才获取到了IP,以后注意下吧。

关于获得本机外网IP地址的问题