显示我的本地网络中的网络接口:
ifconfig
enp3s0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 192.168.31.52 netmask 255.255.255.0 broadcast 192.168.31.255
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
我想通过python套接字模块获取mtu值。
import IN,socket
def getMtu(host,port):
sock = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
sock.setsockopt(socket.IPPROTO_IP,IN.IP_MTU_DISCOVER,IN.IP_PMTUDISC_DO)
sock.connect((host,port))
max_mtu = sock.getsockopt(socket.IPPROTO_IP,IN.IP_MTU)
print("Actual MTU :{}".format(max_mtu))
获取127.0.0.1
的mtu值。
>>> getMtu("127.0.0.1",10000)
Actual MTU :65535
它与ifconfig
节目相同。
获取192.168.31.52
的mtu值。
>>> getMtu("192.168.31.52",10000)
Actual MTU :65535
为什么与ifconfig
节目不同?我想获得预期的结果1500
。