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

做一个C/S程序,客户端和服务器之间可以通过外网相互连接进行通信
遇到的问题是客户端如何获取本机的外网IP
还有客户端如果用路由器、交换机上网
服务器连接客户端时,怎么访问客户端,只知道外网IP应该不能访问吧?
是不是外网IP和内网IP都要知道啊
具体用什么实现,谁知道帮忙解决一下!
帮忙解决了可以加分啊!

本机是获取不到自己外网IP的,真的想要知道,你可以访问ip138这种网站,让这种网站获得你的IP再返回给你。有点儿像自己的眼睛是看不到自己长啥样,想要看得是镜子“获得”你的样子,然后再返还给你一样。

路由什么的是基于NAT的,根本不需要知道客户端的真实地址是什么,服务端地址固定住就好了。当客户端与服务端连接时(建立Sockets)经过路由,路由会NAT给客户端一个地址(包含IP和端口号两部分),服务端只需要往这个地址上发送信息,路由器识别你这个地址会自动转发给相应的真正的客户端的,这也就是路由的本身作用。
温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2016-11-03
C# 获取外网IP方法:
private static string GetIP()
{
string tempip = "";
try
{
WebRequest wr = WebRequest.Create("");
Stream s = wr.GetResponse().GetResponseStream();
StreamReader sr = new StreamReader(s, Encoding.Default);
string all = sr.ReadToEnd(); //读取网站的数据
int start = all.IndexOf("您的IP地址是:[") + 9;
int end = all.IndexOf("]", start);
tempip = all.Substring(start, end - start);
sr.Close();
s.Close();
}
catch
{
}
return tempip;
}
第2个回答  2014-05-09
外网IP获取不了的。外网IP的获取,是通过访问外网的网站,由网站获取你的IP,然后返回给你,你自己获取不到的,只能获取本地的IP。

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网