用python做个抓包工具,下面有写代码不明白,请老师指点一下.
while True:
packet = s.recvfrom(65565)
packet = packet[0]
ip_header = packet[0:20]
iph = unpack('!BBHHHBBH4s4s' , ip_header)
version_ihl = iph[0]
version = version_ihl >> 4
ihl = version_ihl & 0xF
iph_length = ihl * 4
ttl = iph[5]
protocol = iph[6]
s_addr = socket.inet_ntoa(iph[8]);
d_addr = socket.inet_ntoa(iph[9]);
问题1:这里面的iph = unpack('!BBHHHBBH4s4s' , ip_header)是什么意思,必须是BBHHHBBH4s4s吗?
问题2:version = version_ihl >> 4是什么意思? '>>'是什么符号?
问题3:ihl = version_ihl & 0xF是什么意思?
问题4:s_addr = socket.inet_ntoa(iph[8])是转换ip的吗?
本人初学python,没有分数,请各位老师不吝赐教,万分感激.