C# socket获取本机IP地址怎么显示不出来?

ASDF5418 2017-10-04 11:38:23

本机地址显示不出来?是不是转换时候的问题?
...全文
385 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
homesos 2017-10-04
  • 打赏
  • 举报
回复

foreach (System.Net.NetworkInformation.NetworkInterface netInt in System.Net.NetworkInformation.NetworkInterface.GetAllNetworkInterfaces())
            {
                foreach (System.Net.NetworkInformation.UnicastIPAddressInformation ipIntProp in netInt.GetIPProperties().UnicastAddresses.ToArray<System.Net.NetworkInformation.UnicastIPAddressInformation>())
                {
                    //netInfo += string.Format("    接口名:{0},  ip:{1},  ip类型:{2}\r\n", netInt.Name, ipIntProp.Address.ToString(), ipIntProp.Address.AddressFamily);

                    if (ipIntProp.Address.ToString().IndexOf('.') > 0)
                    {
                        cmbBoxIPAddress.Items.Add(ipIntProp.Address.ToString());
                    }
                    
                }
            }
  • 打赏
  • 举报
回复
X-i-n 2017-10-04
  • 打赏
  • 举报
回复
具体是怎么显示不出来?没有输出,还是地址不完整,还是地址获取有错误? 你的代码在显示IP的时候,只会将最后的一个地址赋到 textBox2,之前的IP显示都会被覆盖。应该修改为textBox2.AppendText(ip + "\r\n"); 这种获取地址的方法会将所有本地网卡的所有地址都列出来,需要额外再判断哪个IP符合要求。比较省事的做法是起一个socket,连接 baidu的80端口,socket状态为connected时,获取这个socket的LocalEndPoint,这样就可以直接得到访问外网用的IP。

110,530

社区成员

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

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

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