WWW::IP - Was ist meine öffentliche IP Adresse?
Veröffentlicht von Thomas Fahle am (Permalink)
WWW::IP - Returns your ip address with failsafe mechanism von David Farrell ermittelt die eigene öffentliche IP-Adresse.
Beispiel
#!/usr/bin/perl use strict; use warnings; use WWW::IP; my $ip = get_ip(); print "IP: $ip\n";
Ausgabe des Beispielprogramms:
IP: 79.232.98.21
Failsafe
Um Ausfallsicherheit zu erreichen, fragt WWW::IP nacheinander bis zu drei verschiedene Dienste (Webservices), für die entsprechende Perl Module zur Verfügung stehen, ab:
- http://curlmyip.com/ - WWW::curlmyip
- http://geoip.hidemyass.com/ip/ - WWW::hmaip
- http://ipinfo.io/ - WWW::ipinfo
Der erste Treffer gewinnt, die anderen Dienste werden dann nicht mehr abgefragt.
WWW::curlmyip
WWW::curlmyip von David Farrell nutzt http://curlmyip.com/ um die öffentliche IP-Adresse zu ermitteln.
Beispiel
#!/usr/bin/perl use strict; use warnings; use WWW::curlmyip; my $ip = get_ip(); print "IP: $ip\n";
Ausgabe des Beispielprogramms:
IP: 79.232.98.21
WWW::hmaip
WWW::hmaip von David Farrell nutzt http://geoip.hidemyass.com/ip/ um die öffentliche IP-Adresse zu ermitteln.
Beispiel
#!/usr/bin/perl use strict; use warnings; use WWW::hmaip; my $ip = get_ip(); print "IP: $ip\n";
Ausgabe des Beispielprogramms:
IP: 79.232.98.21
WWW::ipinfo
WWW::ipinfo von David Farrell nutzt http://ipinfo.io/ um die öffentliche IP-Adresse zu ermitteln. Weiterhin können Geolocation Daten zu der IP-Adresse abgefragt werden.
Die Funktion get_ipinfo() liefert eine Referenz auf einen Hash mit der IP Adresse und den Geolocation Daten zurück.
Beispiel
#!/usr/bin/perl use strict; use warnings; use WWW::ipinfo; my $ipinfo = get_ipinfo(); my @ipinfo_keys = qw/ip hostname city region country loc org postal/; foreach my $ipinfo_key (@ipinfo_keys) { $ipinfo->{$ipinfo_key} = 'unknown' unless $ipinfo->{$ipinfo_key}; print "$ipinfo_key: $ipinfo->{$ipinfo_key}\n"; }
Ausgabe des Beispielprogramms:
ip: 79.232.98.21 hostname: p4FE86215.dip0.t-ipconnect.de city: Leimbach region: Hessen country: DE loc: 50.7500,9.7833 org: AS3320 Deutsche Telekom AG postal: unknown
Der Funktion get_ipinfo() kann auch eine IPv4 oder IPv6 Adresse als Parameter übergeben werden, dann werden die Geolocation Daten für die angegebene IP zurückgeliefert.
Siehe auch:
- WWW::IP
- WWW::curlmyip
- http://curlmyip.com/
- WWW::hmaip
- http://geoip.hidemyass.com/ip/
- WWW::ipinfo
- http://ipinfo.io/
- Easily check your IP address with Perl
- Geo::IP - IP-Adressen oder Hostnamen regional zuordnen
Bildnachweis