• c# 获取本机IP地址


    1.常用的获取本机IP地址的方法如下:

                try
                {
                    string hostName = Dns.GetHostName();
                    IPHostEntry iPHostEntry = Dns.GetHostEntry(hostName);
                    var addressV = iPHostEntry.AddressList.FirstOrDefault(q => q.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork);//ip4地址
                    if (addressV != null)
                        return addressV.ToString();
                    return "127.0.0.1";
                }
                catch (Exception ex)
                {
                    return "127.0.0.1";
                }

    但是以上获取IP地址的方法,可能获取不到你想要的IP地址,比如,你本机开启了虚拟机,VPN等,都会增加IP地址

    2.以下通过Socket,连接UDP套接字并读取其本地终结点,可以拿到更精确的本机IP地址:

    string localIP;
    using (Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, 0))
    {
        socket.Connect("8.8.8.8", 65530);
        IPEndPoint endPoint = socket.LocalEndPoint as IPEndPoint;
        localIP = endPoint.Address.ToString();
    }

    在UDP套接字上连接具有以下效果:它设置发送/接收的目的地,丢弃来自其他地址的所有数据包。参照https://stackoverflow.com/questions/6803073/get-local-ip-address

  • 相关阅读:
    浅谈HTTP中Get与Post的区别
    js 执行完setTimeout再接着执行函数
    2017年书单
    js判断img是否存在
    md5
    GIF播放器
    java 集合(二)
    java 泛型
    抓包工具
    js计算地球两个经纬度之间的距离
  • 原文地址:https://www.cnblogs.com/lcawen/p/13256412.html
Copyright © 2020-2023  润新知