1
#コードの後ろにreturnステートメント があると、指定されたインターフェイスのIPアドレスを取得するのに役立ち、どのような使用が0x8915の であるのか分かりません。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'と入力するだけです。 '0x1'、' 0x10'、 '0xff'も試してください。 –
0x8915は35093 – Inconnu
fcntl.ioctl()の使用方法は? –