gpt4 book ai didi

python - 0x8915有什么用?

转载 作者:太空宇宙 更新时间:2023-11-03 14:51:09 25 4
gpt4 key购买 nike

# 我不明白return语句后面的代码是怎么做的 帮助获取给定接口(interface)的 IP 地址及其用途 0x8915??

 #!/usr/bin/env python

import argparse
import sys
import fcntl
import struct
import array
import socket

def get_ip_address(ifname):
#interfaces = list_interfaces()
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
return socket.inet_ntoa(fcntl.ioctl(s.fileno(), 0x8915,
struct.pack('256s', ifname[:15]))[20:24])

if __name__ == '__main__':
parser = argparse.ArgumentParser(description='Python
networkingutils')
parser.add_argument('--ifname', action="store", dest="ifname",
required=True)
given_args = parser.parse_args()
ifname = given_args.ifname
print "Interface [%s] --> IP: %s" %(ifname, get_ip_address(ifname))


The output of this script is shown in one line, as follows:
$ python 3_5_get_interface_ip_address.py --ifname=eth0
Interface [eth0] --> IP: 10.0.2.15
    -

最佳答案

0x8915 是 Linux SIOCGIFADDR 的值。不幸的是,它是硬编码在这个Python代码中,并且没有任何影响代码可读性的注释。 SIOCGIFADDR 在 ioctl 中使用来获取接口(interface)的 IP 地址。请参阅this documentation欲了解更多信息或查看this code这是一个比您引用的 python 代码更可读的 C 版本。

关于python - 0x8915有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45892239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com