Fürs testen von Netzwerkverbindungen ist es manchmal nützlich, wenn man eine schnelle Möglichkeit hat sich an edin bestimmtes interface und port zu binden. – Letzteres wäre zwar auch mit netcat (nc -l 5000
) möglich, doch damit kann man sich nicht an eine bestimmte IP, bwz. ein Interface binden.
Das folgende kleine python script macht das:
#!/usr/bin/python
''' Simple socket server using threads
'''
import socket
import sys
HOST = '192.168.10.5' # Symbolic name, meaning all available interfaces
PORT = 5500 # Arbitrary non-privileged port
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print 'Socket created'
#Bind socket to local host and port
try:
s.bind((HOST, PORT))
except socket.error as msg:
print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
sys.exit()
print 'Socket bind complete'
#Start listening on socket
s.listen(10)
print 'Socket now listening'
#now keep talking with the client
while 1:
#wait to accept a connection - blocking call
conn, addr = s.accept()
print 'Connected with ' + addr[0] + ':' + str(addr[1])
s.close()
Dank geht an User: thisismydesign im Beitrag: How to create a TCP listener?
[stextbox id=“info“ caption=“Tipp“]Will man sich an eine IP binden, die auf dem System gar nicht existiert, muss man den sysctl Wert von: net.ipv4.ip_nonlocal_bind=1 setzen.[/stextbox]