ralphi: stringMatchWithWildcard() oder anders mit cli für IP-geolocation

Beitrag lesen

Hallo zusammen,

ich bastel gerade an einem universaltool -Ip location (Einsatzmöglichkeit offen).
Dabei starte ich ein prog im hintergrund (mit cli), dass mir die Orte der IP Adressen in ne DB loggen soll.

Das geschriebene funktioniert auch soweit. Nur möchte ich die localen Zugriffe ausiffen.
stringMatchWithWildcard($ip2,"192.168.*")
Die function kennt cli nicht.
Wie könnte ich noch adressbereiche zum ausiffen angeben?

Im folgenden das Programm zur Lite-Localisierung:
Nicht wieder posten: Dass gibt’s doch schon alles – nimmste das modul, prog etc. Ich habs nun mal selber geschrieben – wie den dyndns-client halt auch ;-)

PS: getpos.de ist irgendwie verschwunden – weiß jemand was drüber?

Also - test mit

php /xx/besucher.php 192.168.123.111 test

Und später aufrufen mit

<?php  
//include ("module/besucher.php");  
$ip2 = getenv("REMOTE_ADDR");  
$ref2 = getenv("HTTP_REFERER");  
exec ("php -f /yy/besucher.php " .  $ip2 . " " .  $ref2 . " > /dev/null &");  
  
	Header("Location: xx/index.php");  
?>

Folgendes hab ich geschrieben: (kuckt nicht schön aus – tut’s aber ;-)

<?php  
// +++++++++++++++++++++++++++++++  
ini_set('error_reporting', E_ALL); // zum testen  
  
  
// Datenbank öffnen  
$link2 = mysql_connect ("192.168.123.2", "xxx", "xxx");  
mysql_select_db ("statistik");  
  
$ip2 = $argv[1];  
$ref2 = $argv[2];  
  
$query1 = "SELECT * FROM test WHERE ip = '" . $ip2 . "';";  
$res1 = mysql_query($query1);  
$anz = mysql_num_rows($res1);  
  
				/*	<?xml version="1.0" encoding="iso-8869-1"?>  
					<results>  
					<result>  
					<ip>88.198.156.18</ip>  
					<host>utrace.de</host>  
					<isp>Hetzner Online AG</isp>  
					<org>Pagedesign GmbH</org>  
					<region>Hamburg</region>  
					<countrycode>DE</countrycode>  
					<latitude>53.5499992371</latitude>  
					<longitude>10</longitude>  
					<queries>10</queries>  
					</result>  
					</results> */  
  
if ($anz != 0 ) {  
		$row =mysql_fetch_array($res1);  
		$isp = $row['isp'];  
		$org = $row['org'];  
		$ort = $row['ort'];  
		$land = $row['land'];  
		$lat = $row['lat'];  
		$lng = $row['lng'];  
		$queries = $row['queries'];  
		echo "vorhanden ip\n"; // zum testen  
		// stringMatchWithWildcard() klappt nicht  
}elseif (stringMatchWithWildcard($ip2,"192.168.*") or $ip2 == "188.192.17.100"){  
		$isp = 'daheim';  
		$org = 'daheim';  
		$ort = 'daheim';  
		$land = 'Bayern';  
		$lat = 0;  
		$lng = 0;  
		$queries = 0;  
		echo "intern ip\n"; // zum testen  
}else{  
		$url= "http://xml.utrace.de/?query=" . $ip2;  
		$data = simplexml_load_file($url);  
		  
		$isp = $data->result->isp;  
		$org = $data->result->org;  
		$ort = $data->result->region;  
		$land = $data->result->countrycode;  
		$lat = $data->result->latitude;  
		$lng = $data->result->longitude;  
		$queries = $data->result->queries;  
		echo "neu ip\n"; // zum testen  
}  
  
// standard zeug - wers braucht  
$host2 = "seite x Only";  
$seite2 = " seite x ";  
  
	  
	$query1="INSERT INTO test (zeitstamp, datum, zeit, ip, ref, host, seite, ";  
	$query2="isp, org, ort, land, lat, lng, queries) VALUES ";  
	$query3= "('" . time() . "', '" . date("Y-m-d") . "', '" . date("H:i:s");  
	$query4= "', '" . $ip2 . "', '" . $ref2 . "', '" . $host2 . "', '" . $seite2;  
	$query5= "', '" . $isp . "', '" . $org . "', '" . $ort . "', '" . $land;  
	$query6= "', '" . $lat . "', '" . $lng . "', '" . $queries . "');";  
  
	$query = $query1 . $query2 . $query3 . $query4 . $query5 . $query6;  
		mysql_query($query);  
  
// mailen (lass ich erst mal weg)  
		$betreff="visit - " . $ip2 . " Seite: " . $seite2;  
		$html= "<ol> <li>Datum:  " .  date("d.m.Y") . "</li>\n";  
		$html= $html . "<li>Zeit:  " .  date("H:i:s") . "</li>\n";  
		$html= $html . "<li>IP:  " .  $ip2 . "</li>\n";  
		$html= $html . "<li>Ref:  " .  $ref2 . "</li>\n";  
		$html= $html . "<li>Seite:  " .  $seite2 . "</li></ol>\n";  
		  
		$text= "Datum:  " .  date("d.m.Y") . "\n";  
		$text= $text . "Zeit:  " .  date("H:i:s") . "\n";  
		$text= $text . "IP:  " .  $ip2 . "\n";  
		$text= $text . "Ref:  " .  $ref2 . "\n";  
		$text= $text . "Seite:  " .  $seite2 . "\n";  
  
		$adresse = "visit@xx.de";  
		//include ("mailer/mail-ibb-la.php");  	// mailer  
  
  
  
?>

Viele Grüße aus LA

--
ralphi