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

做一个C/S程序,客户端和服务器之间可以通过外网相互连接进行通信遇到的问题是客户端如何获取本机的外网IP还有客户端如果用路由器、交换机上网服务器连接客户端时,怎么访问客户... 做一个C/S程序,客户端和服务器之间可以通过外网相互连接进行通信
遇到的问题是客户端如何获取本机的外网IP
还有客户端如果用路由器、交换机上网
服务器连接客户端时,怎么访问客户端,只知道外网IP应该不能访问吧?
是不是外网IP和内网IP都要知道啊
具体用什么实现,谁知道帮忙解决一下!
帮忙解决了可以加分啊!
展开
 我来答
然后去远足
2014-05-09 · TA获得超过1万个赞
知道大有可为答主
回答量:4016
采纳率:83%
帮助的人:2431万
展开全部
本机是获取不到自己外网IP的,真的想要知道,你可以访问ip138这种网站,让这种网站获得你的IP再返回给你。有点儿像自己的眼睛是看不到自己长啥样,想要看得是镜子“获得”你的样子,然后再返还给你一样。

路由什么的是基于NAT的,根本不需要知道客户端的真实地址是什么,服务端地址固定住就好了。当客户端与服务端连接时(建立Sockets)经过路由,路由会NAT给客户端一个地址(包含IP和端口号两部分),服务端只需要往这个地址上发送信息,路由器识别你这个地址会自动转发给相应的真正的客户端的,这也就是路由的本身作用。
Storm代理
2023-07-25 广告
StormProxies是一家提供动态代理服务器服务的企业,旨在帮助用户更好地管理网络访问和安全。以下是一些关于StormProxies的IP动态代理服务的特点:1. 高匿名性:StormProxies的动态代理服务器具有高匿名性,可以有效... 点击进入详情页
本回答由Storm代理提供
冲浪网站优化
高粉答主

推荐于2016-11-03 · SEO资深专家,互联网知名专家。
冲浪网站优化
采纳数:10812 获赞数:90554

向TA提问 私信TA
展开全部
C# 获取外网IP方法:
private static string GetIP()
{
string tempip = "";
try
{
WebRequest wr = WebRequest.Create("http://www.ip138.com/ips138.asp");
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;
}
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hey112233
2014-05-09 · 超过57用户采纳过TA的回答
知道小有建树答主
回答量:129
采纳率:100%
帮助的人:101万
展开全部
外网IP获取不了的。外网IP的获取,是通过访问外网的网站,由网站获取你的IP,然后返回给你,你自己获取不到的,只能获取本地的IP。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式