Ich wollte hier mal mein ganz alleine geschriebenes programm zeigen und vor allem kritik einfangen, da ich noch unerfahren bin in sachen netzwerkprogrammierung.
Es ist ein programm das checkt auf welchen ports es sich verbinden kann, sprich also welche offen sind. Das hoffeich jedenfalls Wie gesagt, man findet wenig im Netz über python und netzwerkprogrammierung und was Englishes angeht, so verstehe ich es zwar eig. recht gut, nur die fachbegriffe liegen mir nicht so.
Daher, schaut es Euch mal bitte an und zeigt mir wo ich falsch liege und/oder wie man das viel effizienter machen könnte, ich bin auch so selbst kritisch, das ich sicherlich weiss dass das nicht das gelbe vom Ei ist. ABER: Es funktioniert auf jedenfall, so viel wie ich getestet habe und auch gesehen, aber ich min mir nicht sicher ob es wirklich ganz genau so funktioniert wie ich mir das vorstelle.
ich habe es bei nur im script ordner ohne .py gespeichert und nenne es porch, also muss man es: porch ip_or_url start_port end_port, starten, somit kann man einen bestimmten port bereich testen und muss nicht unbedingt von 1 bis 65535 z.b.
Code: Alles auswählen
#!/usr/bin/env python3
# -*- Coding: utf-8 -*-
#################################
# #
# Port Check v0.2 #
# fichtknick@lavabit.com #
#################################
import socket
from sys import exit, argv
def make_socket():
# Build a Socket
try:
soc = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
except:
print("\nSocket build fail\n")
exit()
return soc
def test(host, start_port, end_port):
# Let's test it
port_counter = start_port
while port_counter <= end_port:
soc = make_socket()
try:
soc.connect((host, port_counter))
print("\n--> On Port: {} Connected.".format(port_counter))
soc.close()
except:
pass
port_counter += 1
def how_to():
# Fals nicht oder zuviele Parameter gegeben wurden
print("\nNeed parameter's, Example: ")
print("\nporch ip_or_url start_port end_port\n")
def main():
print("\nPortcheck v0.2\n")
if len(argv) < 4 or len(argv) > 4:
how_to()
else:
# ip or url, can be write...
try:
host = socket.gethostbyname(argv[1])
except socket.gaierror:
print("Connection Fail: Host down ? ")
exit()
start_port = int(argv[2])
end_port = int(argv[3])
test(host, start_port, end_port)
print("\nTest Done...\n")
if __name__=='__main__':
main()