Code 6
#server.py
import socket
from ch import c
s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_ICMP)
while True:
p,_=s.recvfrom(1024)
if p[20]==8:
print("Received:",p[28:])
print("Checksum:", "OK" if c(p[20:])==0 else "Fail")
#ch.py
def c(d):
s=0
for i in range(0,len(d),2):
w=(d[i] < < 8)+(d[i+1] if i+1
import socket,os,struct
from ch import c
s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socket.IPPROTO_ICMP)
d=b"data"
id=os.getpid()&0xffff
p=struct.pack("!BBHHH",8,0,0,id,1)+d
ck=c(p)
p=struct.pack("! BBHHH ",8,0,ck,id,1) +d
s.sendto(p,(" localhost " , 0 ) )