现在是这样的,我的服务端和客户端已经在局域网实现了即时通讯,要做tcp打洞,却不知道如何获取本机的外网地址,只能获取内网ip,请各位帮助解答下

解决方案 »

  1.   

    我也一直找这种方法。后来真的只能用一个办法,以下是参考:
    :WebClient client = new WebClient(); var text = client.DownloadString("http://www.ip.cn/getip2.php?action=getip")
                        .Replace("</span>&nbsp;来自:", " ")
                        .Replace("<span class='orange'>", string.Empty);
                    var sp = text.Split(' ');
                    if(sp.Length == 3)
                    {
                        _client = new ClientInfo();
                        _client.Address = sp[0].Trim();
                        _client.From = sp[1].Trim();
                        _client.Netline = sp[2].Trim();
                        lLineDisplay.Text = _client.From + "\r\n" + _client.Address + "  " + _client.Netline;
                        radioGroup1.EditValue = _client.GetRemotingAddress();
                    }
      

  2.   

    只有这样一种方法吗?我看到过这个方法但是觉得这个方法可能存在一些弊端。tcp打洞的方法步骤是客户端连接到服务端,服务端可以解析客户端的公网ip,现在我在客户端通过remoting连接服务端的时候还是只能用内网ip:192.168.1.XXX和127.0.0.1连接,使用外网ip连接服务端是连不上,关了防火墙也一样,何解???
      

  3.   

    要是这个网页移除了,那程序不就崴了吗?肯定有一种方法在程序中获取的把
    类似Address Dns...