E wie einfach: IP in DB speichern ?

Hi, ich speichere eine IP in einer DB. Binary(16). So sieht ein Eintrag aus IPv4 von localhost aus: \0\0\0\0\0\0\0\0\0\0\0\0\0\0 (ungefähr, nicht anzeigbare Zeichen entfernt)

Nun hab ich schnell mal ein Testscript geschrieben, um das auszulesen:

<?php

mysql_connect("localhost","root","");
mysql_select_db("test");
$IP = $_SERVER['REMOTE_ADDR'];
$IP = inet_pton($IP);
$result = mysql_query("SELECT IP FROM tabelle WHERE IP = '$IP'") or die(mysql_error());
while($Row=mysql_fetch_assoc($result)) {
$ergebnis = $Row['IP'];
}
$new_ip = inet_ntop($ergebnis);
echo $new_ip;

?>

Allerdings meint der immer Warning: inet_ntop() [function.inet-ntop]: Invalid in_addr value in XXX on line ...

Kann mir jemand sagen woran das liegt?

  1. Hi!

    Allerdings meint der immer Warning: inet_ntop() [function.inet-ntop]: Invalid in_addr value in XXX on line ...
    Kann mir jemand sagen woran das liegt?

    Was ergeben Kontrollausgaben der beteiligten Werte? Insbesondere solltest du dabei auch bin2hex() nehmen, damit man die Binärdaten lesbar angezeigt bekommt.

    Lo!