Mit python an IP/Port binden

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?

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.

Published by

Steven Varco

Steven ist ein Redhat RHCE-Zertifizierter Linux-Crack und ist seit über 20 Jahren sowohl beruflich wie auch privat auf Linux spezialisiert. In seinem Keller steht ein Server Rack mit diversen ESX und Linux Servern.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.