python3读取本地_Python3 获取本机 IP
通过 UDP 获取本机 IP,没有任何的依赖,也没有去猜测机器上的网络设备信息,而且是利用 UDP 协议来实现的,生成一个UDP包,把自己的 IP 放如到 UDP 协议头中,然后从UDP包中获取本机的IP。
这个方法并不会真实的向外部发包,所以用抓包工具是看不到的。但是会申请一个 UDP 的端口,所以如果经常调用也会比较耗时的,这里如果需要可以将查询到的IP给缓存起来,性能可以获得很大提升。
# 可以封装成函数,方便 Python 的程序调用
import socket
def get_host_ip():
try:
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect(('8.8.8.8', 80))
ip = s.getsockname()[0]
finally:
s.close()
return ip
if __name__ == '__main__':
print(get_host_ip())
不推荐:通过hostname来获取本机IP
import socket
print(socket.gethostbyname(socket.gethostname()))
# 有可能出现这个情况
Traceback (most recent call last):
File "", line 1, in
socket.gaierror: [Errno -2] Name or service not known
这个方法是通过获取hostname,然后再通过hostname反查处机器的IP。这个方法也是不推荐的。因为很多的机器没有规范这个hostname的设置。
另外就是有些服务器会在 /etc/hosts 中添加本机的hostname的地址,这个做法也不是不可以,但是如果设置成了 127.0.0.1,那么获取出来的IP就都是这个地址了。
python3读取本地_Python3 获取本机 IP相关推荐
- Shell脚本中获取本机ip地址,Linux获取本地ip地址
在 Shell 脚本中获取本机 IP 地址可以通过多种方式实现,这里介绍三种常用的方法: 1. 使用 ifconfig 命令获取本机 IP 地址 ifconfig 命令可以获取本机网卡的配置信息,包括 ...
- java:获取本机IP,Linux环境下使用InetAddress.getLocalHost()方法获得127.0.0.1
知道InetAddress.getLocalHost()方法是可以获取本地ip的,但是在mac电脑上执行的时候,偶尔会得到127.0.0.1的输出,这样拿到本地ip很不稳定,感觉就很不靠谱了 目录 I ...
- Qt获取本机IP、MAC地址、子网掩码、网卡名等函数设计
获取本机IP函数 QString getIp() {QString myIp;QList<QHostAddress> ipList = QNetworkInterface::allAddr ...
- java returnAddres_java获取本机ip(排除虚拟机等一些ip)最终解,总算找到方法了...
本文参考https://blog.csdn.net/u011809209/article/details/77236602 本文参考https://blog.csdn.net/yinshuomail/ ...
- python 提取网关信息_python:使用netifaces模块获取本机IP网关等信息
python获取本机IP有很多种方法,可每种方法都有局限性. 使用netifaces模块获取本机IP网关等信息,需要安装netifaces模块,不管windows还是linux都可以通用. 一.程序: ...
- Java 网络实例一(获取指定主机的IP地址、查看端口是否已使用、获取本机ip地址及主机名、获取远程文件大小)
获取指定主机的IP地址 import java.net.InetAddress; import java.net.UnknownHostException;public class GetIP {pu ...
- java获取本机ip地址_代码片段:获取系统所有IP
问题 在Windows系统中,可以支持多个网卡,比如有线的以太网卡,无线网卡,虚拟网卡等.如下图所示: 每一张网卡由不同的类型,也可以分别被用户启用或禁用. 对于单独一张给定的网卡,其IP地址可以是D ...
- bat批处理开发-wifi联网系列(4):连接wifi,获取本机ip、网关及dns,并通过ping对wifi网络的连通性可用性进行检测
公司wifi很不稳定,编写了个wifi断网后自动重连的批处理,主要包括:可用wifi查询.联网.wifi切换感知.自动检测及掉线重连,网络状态分析等功能. 本次分享第四部分:连接wifi,并对wifi ...
- qt获取本机全部ipv4_QT5下获取本机IP地址、计算机名、网络连接名、MAC地址、子网掩码、广播地址...
获取主机名称 /* * 名称:get_localmachine_name * 功能:获取本机机器名称 * 参数:no * 返回:QString */ QString CafesClient::get_ ...
最新文章
- 斐波那契数列及青蛙跳台阶问题
- REAL6410、OK6410、TE6410 的区别
- 石油大c语言答案,中国石油大学C语言答案
- 数字证书 - Java加密与安全
- 编程语言的发展趋势及未来方向(3):函数式编程
- gradle compile mysql_Gradle配置implementation、api与compile的区别
- java EE 监听器
- C 语言的数据类型宽度扩展
- javascript中的options.add() options.remove() options(index)或options.item(index)
- 基于用户画像的商品推荐挑战赛
- mysql2005错误码_SQL Server2005 常见错误及解决方案
- playbook_黑莓PlayBook的第一波Union游戏揭晓!
- 数据结构如何申请一个空间的队列_如何用鞋柜来作为隔断,隔出一个玄关空间...
- word 输入数学公式(1)
- 常见的http状态码有哪些?分别表示什么意思?
- 红亚太学链之区块链技术深度剖析第9章
- SQL Server 扩展秘钥管理(EKM)
- iOS中的各种快捷键
- super_status_bar与status_bar的关系
- Week2 Bing词典Android客户端案例分析