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

Posted 再不吃药吃枣药丸

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于获得本机外网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地址的问题的主要内容,如果未能解决你的问题,请参考以下文章

vc获取本机外网IP,怎么获取,求源码。

请问 C# 如何获取外网IP?

怎么实现c#获取ip内网,外网地址?

怎样查询本机ip地址?如何利用花生壳获取外网IP教程

Java 获取IP工具类Vo类整理记录

Java 获取IP工具类Vo类整理记录