pingplace/pingplace.py

58 lines
1.5 KiB
Python
Raw Normal View History

2023-07-18 09:04:33 +02:00
from icmplib import *
2023-07-18 10:06:33 +02:00
from PIL import Image
2023-07-18 09:04:33 +02:00
def one_ping(socket, address):
request = ICMPRequest(
destination=address,
id=1,
sequence=1)
try:
print("sending packet to %s" % address)
socket.send(request)
return
except TimeoutExceeded as err:
# The timeout has been reached
print(err)
except DestinationUnreachable as err:
# The reply indicates that the destination host is unreachable
print(err)
except TimeExceeded as err:
# The reply indicates that the time to live exceeded in transit
print(err)
except ICMPLibError as err:
# All other errors
print(err)
# settings
2023-07-18 09:29:27 +02:00
x=0
y=0
2023-07-18 09:04:33 +02:00
width=512
hight=512
prefix="2a01:4f8:c012:f8e6:1"
# open socket
sock = ICMPv6Socket()
2023-07-18 10:06:33 +02:00
# open image
with Image.open("image.jpg") as imgraw:
img = imgraw.resize((width, hight))
2023-07-18 09:04:33 +02:00
# generate IP list
ips=[]
for w in range(width):
2023-07-18 09:34:55 +02:00
for h in range(hight):
xcoord=x+w
xcoord=f"{xcoord:#05x}".split('x')[-1]
ycoord=hex(y+h).split('x')[-1]
2023-07-18 10:06:33 +02:00
r=img.getpixel((x+w, y+h))[0]
g=img.getpixel((x+w, y+h))[1]
b=img.getpixel((x+w, y+h))[2]
2023-07-18 09:04:33 +02:00
colorr=f"{r:#04x}".split('x')[-1]
colorg=f"{g:#04x}".split('x')[-1]
colorb=f"{b:#04x}".split('x')[-1]
ip=prefix+xcoord+":"+ycoord+":"+colorr+":"+colorg+colorb
ips.append(ip)
for ip in ips:
2023-07-18 10:07:29 +02:00
#print(ip)
one_ping(sock, ip)
2023-07-18 09:04:33 +02:00
print("done with %s ips" % len(ips))