struct.error: argument for's' must be a bytes object
struct.error: argument for's' must be a bytes object
通过使用此代码:
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')
我收到了
"struct.error: argument for's' must be a bytes object"
这里指的是哪个对象?
在你的字符串前加上 b
使它们成为像这样的字节:
ifreq = struct.pack('16sH2s4s8s', iface, socket.AF_INET, b'\x00' * 2, bin_ip, b'\x00' * 8)
setIpAddr(b'em1', '192.168.0.1')
通过使用此代码:
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')
我收到了
"struct.error: argument for's' must be a bytes object"
这里指的是哪个对象?
在你的字符串前加上 b
使它们成为像这样的字节:
ifreq = struct.pack('16sH2s4s8s', iface, socket.AF_INET, b'\x00' * 2, bin_ip, b'\x00' * 8)
setIpAddr(b'em1', '192.168.0.1')