C#的应用程序中,怎样才能获得本机的IP地址

仓木泽 2004-08-24 10:55:35
现在情况是:本机运行客户端程序,本机处于局域网中,通过网关和NAT连上INTERNET,客户端要获取本机的局域网内的IP和NAT转换以后的IP发送到服务器。
怎么解决获得本机的IP的问题。
...全文
220 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
仓木泽 2004-08-24
  • 打赏
  • 举报
回复
谢谢楼上的总结
tgoom 2004-08-24
  • 打赏
  • 举报
回复
IPHostEntry iphe = Dns.Resolve(Dns.GetHostName());
IPAddress[] address_list = iphe.AddressList;
IPAddress myip = address_list[0]; //这个IP是公网上的IP
IPAddress myip = address_list[1]; //这个IP是局域网上的IP
这里的address_list 是一个IP地址的数组
获取了本地机器的所有IP的信息
第一个代表的是 公网上的IP
第二个代表的是 局域网上的IP
当然,前提是你的电脑必须在公网上
如果你的电脑没有连上公网,只在局域网的话
第一个代表的就是 你局域网的IP了
呵呵

Samen168 2004-08-24
  • 打赏
  • 举报
回复
呵,同意。。
ncucf 2004-08-24
  • 打赏
  • 举报
回复
恩,同上!
如果本机能上网,有公网ip的话,address_list[0]也有可能是公网ip,而address_list[1]才是局域网ip,呵呵!

主要原因是有时候,系统无法获得有效的局域网ip地址,反而让公网ip先得到了!
仓木泽 2004-08-24
  • 打赏
  • 举报
回复
这个获取的是NAT地址
zhuweisky 2004-08-24
  • 打赏
  • 举报
回复
获得本机的IP:
IPHostEntry my_iphe = Dns.Resolve(Dns.GetHostName()) ;
IPAddress[] address_list = my_iphe.AddressList ;
IPAddress my_ip = address_list[0] ;
当然这个ip是局域网内IP。

110,536

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧