C#实现获取本地内网(局域网)和外网(公网)IP地址的方法分析
本文主要介绍了C#实现获取本地内网(局域网)和外网(公网)IP地址的方法,结合实例形式总结分析了C#获取IP地址相关原理、实现方法与操作注意事项。
获取本机的IP地址集合:
在获取IP地址集合时,可以使用System.Net.Dns类的GetHostAddresses方法来获取本机的IP地址集合。这个方法可以根据主机名称获取IP地址数组,然后可以遍历数组来获取每个IP地址。为了实现获取指定类型的IP地址,可以使用AddressFamily枚举类型来筛选IP地址。例如,AddressFamily.InterNetwork表示IPv4类型,AddressFamily.InterNetworkV6表示IPv6类型。
获取本机局域网内IP地址:
如果本机在局域网内,可以直接调用获取IP地址集合的方法,以IPv4为例,使用GetLocalIpAddress("InterNetwork")方法可以获取IPv4类型的IP地址。如果本机只有一个网卡,且没有安装虚拟网卡,那么ipv4_ips里应该只有一条数据,即局域网内地址。
获取本机的公网IP地址:
如果本机是拨号上网的或具有独立公网IP的情况下,可以使用上面的方法即可,以IPv4为例,使用GetLocalIpAddress("InterNetwork")方法可以获取IPv4类型的IP地址。如果本机只有一个网卡,且没有安装虚拟网卡,那么ipv4_ips里应该只有一条数据,即公网IP地址。
如果是路由上网的,想获取网关的外网IP,可以通过访问一些公网的地址来获取外网IP。步骤是:先获取到含有本机外网ip的页面信息,再通过正则获取到ip信息。例如,使用HttpGetPageHtml方法可以获取页面的HTML代码,然后使用正则表达式来提取IP地址信息。
本文介绍了C#实现获取本地内网(局域网)和外网(公网)IP地址的方法,提供了多种获取IP地址的方法和实例代码,希望对读者有所帮助。