parent
ae5b728a99
commit
7e144fe61d
@ -0,0 +1,44 @@
|
||||
import sys
|
||||
import socket
|
||||
from levin.section import Section
|
||||
from levin.bucket import Bucket
|
||||
from levin.ctypes import *
|
||||
from levin.constants import *
|
||||
|
||||
args = sys.argv
|
||||
if len(args) != 3:
|
||||
print('./%s ip port')
|
||||
sys.exit()
|
||||
|
||||
host, ip = args[1], int(args[2])
|
||||
|
||||
try:
|
||||
sock = socket.socket()
|
||||
sock.connect((host, ip))
|
||||
except:
|
||||
sys.stderr.write("unable to connect to %s:%d\n" % (host, ip))
|
||||
sys.exit()
|
||||
|
||||
bucket = Bucket.create_handshake_request()
|
||||
|
||||
sock.send(bucket.header())
|
||||
sock.send(bucket.payload())
|
||||
print(">> sent packet \'%s\'" % P2P_COMMANDS[bucket.command])
|
||||
|
||||
buckets = []
|
||||
|
||||
while 1:
|
||||
buffer = sock.recv(8)
|
||||
|
||||
if buffer.startswith(bytes(LEVIN_SIGNATURE)):
|
||||
bucket = Bucket.from_buffer(signature=buffer, sock=sock)
|
||||
buckets.append(bucket)
|
||||
|
||||
if bucket.command == 1001:
|
||||
peers = bucket.get_peers()
|
||||
|
||||
for peer in peers:
|
||||
print('%s:%d' % (peer['ip'].ipv4, peer['port'].value))
|
||||
|
||||
sock.close()
|
||||
break
|
Loading…
Reference in new issue