当前位置:编程学习 > C#/ASP.NET >>

C#获取本机外网IP

C#获取本机外网IP。主要是在局域网内的主机如何获取能连到本机的外网IP,不是通过访问特定网站再返回的那种。 --------------------编程问答-------------------- 那没办法了 只能通过路由映射吧 估计 通过你们的外部固定IP 在路由里面通过固定端口映射下  --------------------编程问答-------------------- http://topic.csdn.net/u/20100514/10/c856bd9f-e860-4430-990e-a6f2f80694f1.html --------------------编程问答-------------------- 需要探测。 --------------------编程问答-------------------- 因为太忙,没有时间回复,谢谢大家了。通过访问某特定网址确实可以解决此问题,但是谁能保证访问的网址一直有效或该网安全。这也是我为什么需要另觅新法的原因。 --------------------编程问答--------------------
引用 4 楼  的回复:
因为太忙,没有时间回复,谢谢大家了。通过访问某特定网址确实可以解决此问题,但是谁能保证访问的网址一直有效或该网安全。这也是我为什么需要另觅新法的原因。

我靠。哥们你不是吧
2年前的帖子。。。 --------------------编程问答-------------------- 神了,赶紧占位......... --------------------编程问答-------------------- --------------------编程问答-------------------- 只会访问特定网站获取IP的方法路过。 --------------------编程问答-------------------- 还真的是两年前的帖子。好象是没有其他办法的,路由器不是能知道外网IP,那就在路由器上做手脚咯。 --------------------编程问答-------------------- 同求中,这功能还是很实用的 --------------------编程问答-------------------- 我也想知道呢,怎么搞?能不能切换ip? --------------------编程问答-------------------- 编译后以管理员身份运行,将"192.168.1.8"替换为网卡IP,打印的第一个非内网地址就是公网地址。

            Socket sk = new Socket(AddressFamily.InterNetwork, SocketType.Raw, ProtocolType.IP);
            sk.Bind(new IPEndPoint(IPAddress.Parse("192.168.1.8"),0));
            sk.IOControl(IOControlCode.ReceiveAll,BitConverter.GetBytes(1),null);
            byte[] b = new byte[1024];
            while(true)
            {
                int len = sk.Receive(b);
                if (len > 19)
                    for (int i = 16; i < 20; i++)
                        Console.Write("{0}.", b[i]);
                Console.WriteLine();
            }
--------------------编程问答-------------------- 上面有误,稍等我再看一下。 --------------------编程问答-------------------- 继续关注,辛苦楼主
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,