我有python脚本,可为我的无线和有线接口设置IP4地址。到目前为止,我使用以下subprocess
命令:
subprocess.call(["ip addr add local 192.168.1.2/24 broadcast 192.168.1.255 dev wlan0"])
如何使用python库设置接口的IP4地址?以及是否可以使用python库获取已经存在的IP配置?
通过旧ioctl
界面设置地址:
import socket, struct, fcntl
SIOCSIFADDR = 0x8916
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
def setIpAddr(iface, ip):
bin_ip = socket.inet_aton(ip)
ifreq = struct.pack('16sH2s4s8s', iface, socket.AF_INET, '\x00' * 2, bin_ip, '\x00' * 8)
fcntl.ioctl(sock, SIOCSIFADDR, ifreq)
setIpAddr('em1', '192.168.0.1')
(通过设置网络掩码SIOCSIFNETMASK = 0x891C
)
可以通过相同的方式检索IP地址:使用Python的stdlib查找本地IP地址
我相信如果您想使用Netlink的python实现, ioctl
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句