Frage
ich das Net_Geo Birne Paket auf meinem PHP-Server installiert haben.
Dies ist der Code, den ich verwende,
GetRecord ($ ip); // Ausgabe echo "Single IP Ergebnisse:"; echo "
"; print_r($results); echo ""; // Beispiel Anordnung von mehreren IPs $ Arr_ips = array ( gethostbyname ( "www.google.com"), gethostbyname ( "www.heise.de"), gethostbyname ( "www.college.ch") ); // Informationsarray aus net_geo fetch $ results = $ net_geo-> GetRecord ($ arr_ips); // Ausgabe echo "Mehrere IP-Ergebnisse:
"; echo "
"; print_r($results); echo ""; ?>
Aber dieses Stück Code wird keine Ergebnisse angezeigt werden. Ich denke, dass dieser Code nicht funktioniert.
Dies ist der Net_Geo Object
Net_Geo Objekt ( [Cache_path] => / tmp / [Cache_ttl] => 30 [DEFAULT_TIMEOUT] => 60 [Default_caida_server] => http://netgeo.caida.org/perl/netgeo.cgi [Default_hostip_server] => http://api.hostip.info/ [Localizer_data] => ./demo.csv [Service] => [Cache_prefix] => NetGeo [User-Agent] => PHP / NetGeo [Useragent_version] => 1,0 [Array_limit] => 100 [Cache] => Cache_Function Object ( [Ablauf] => 2592000 [Caching] => 1 [Gc_time] => 1 [Gc_probability] => 1 [Gc_maxlifetime] => 86400 [Container] => Cache_Container_file Object ( [FileLocking] => [Cache_dir] => / tmp / [Filename_prefix] => NetGeo [Einträge] => Array ( )
[total_size] => 0
[max_userdata_linelength] => 257
[preload] => 1
[id] =>
[group] =>
[expires] => 0
[cachedata] =>
[userdata] =>
[unknown] => 1
[encoding_mode] => base64
[highwater] => 2048000
[lowwater] => 1536000
[allowed_options] => Array
(
[0] => encoding_mode
[1] => highwater
[2] => lowwater
)
[group_dirs] => Array
(
)
)
[_debug] =>
[_default_error_mode] =>
[_default_error_options] =>
[_default_error_handler] =>
[_error_class] => PEAR_Error
[_expected_errors] => Array
(
)
)
[netgeo_global] => netgeo_global
[useragent_string] =>
[default_server] =>
[last_target] =>
[applicationName] =>
[alternateServerUrl] =>
)
Danke
Lösung
Die Dokumentation Seite von Net_Geo::Net_Geo()
sagt, dass:
Die Methode akzeptiert zwei Parameter:
bool Net_Geo() ( string $applicationName = '' , string $alternateServerUrl = '' )
Und diese Parameter sind:
-
string $applicationName
- Optional Anwendungsname in Useragent zu verwenden, wenn Polling NetGeo -
string $alternateServerUrl
- URL NetGeo Dienstskript wird gesetzt werden „ http: // NetGeo. caida.org/perl/netgeo.cgi “es sei denn, geändert
Sie sind eine dieser Parameter nicht vorbei - die den Standard NetGeo Service-URL Mittel verwendet ...
... Und wenn Sie versuchen, es zu öffnen ( http: //netgeo.caida. org / perl / netgeo.cgi ), sehen Sie es nicht funktioniert; mein Firefox sagt, dass es nicht mit dem Server verbinden kann.
Das erklärt vermutlich, warum Ihr Code erzeugt keine erwartete Ausgabe: wenn es auf einem geolocalition Server angewiesen ist, und dass Server nicht mehr funktioniert ...
Als Nebenbemerkung: nach dem Index von Birne Pakete im Bereich Networking , Net_Geo
wird nicht länger gepflegt, und die letzte Version wurde in 2006-03-29 veröffentlicht; das ist durchaus kein gutes Zeichen ...
Wenn Sie PECL installieren können Pakete (Sie wahrscheinlich Admin des Servers benötigen werden) , vielleicht die GeoIP Paket interessieren würde.