Hab python-ping ein wenig refactored. Nun ist es eine Klasse, mit der man die Ausgaben flexibler gestalten kann. Außerdem habe ich einige Variablen Namen umbenannt und generell aufgeräumt:
Die Ausgabe sieht z.Z. so aus:
Code: Alles auswählen
~/python-ping$ sudo ./ping.py google.com
PYTHON-PING google.com (209.85.148.99): 55 data bytes
64 bytes from google.com (209.85.148.99): icmp_seq=0 ttl=54 time=56.2 ms
64 bytes from google.com (209.85.148.99): icmp_seq=1 ttl=54 time=55.7 ms
64 bytes from google.com (209.85.148.99): icmp_seq=2 ttl=54 time=55.5 ms
----google.com PYTHON PING Statistics----
3 packets transmitted, 3 packets received, 0.0% packet loss
round-trip (ms) min/avg/max = 55.468/55.795/56.232
Ich hab da aber noch ein paar Fragen:
1. sollte man bei
current_socket.sendto(packet, (self.destination, 1)) eine IP Adresse angeben (die ich eh am Anfang mit
self.dest_ip = socket.gethostbyname(self.destination) ermittle) oder ist das egal wenn dort der domain Name angegeben wird? bzw. macht es einen Unterschied?
2. Nachdem ein ping zurück erhalten wurde, gibt es mehrere Wege die IP Addresse vom sender zu ermitteln:
Mit
packet_data, address = current_socket.recvfrom(ICMP_MAX_RECV) hab ich die Addresse.
In den IP Headern aus
packet_data steckt die Adresse ebenfalls drin. Sind beiden automatisch die gleichen?