2016-08-04 5 views
-1

Ich muss die IP-Adresse des Computers abrufen und prüfen, ob diese IP-Adresse in meiner Datenbank enthalten ist. Wenn dies der Fall ist, muss ich den Namen anzeigen, der für die IP-Adresse registriert ist, die sich in meiner Datenbank befand.Die IP-Adresse kennen und überprüfen, ob sie in meiner Datenbank registriert ist

Eigentlich bin ich verwirrt, da kein Fehler erkannt wurde, aber keine Ausgabe angezeigt wurde.

Hier ist mein Code


<?php 
$ipname = gethostbyname(trim(`hostname`)); 
$ip_query = "SELECT ip_address FROM table 5"; 
$ip_add = mysql_query($ip_query); 

if ($ip_add === $ipname){ 
echo "{$ip_add['guest_name']}"; 
} 
?> 
+2

Willkommen bei Stack-Überlauf! Können Sie näher erläutern, wie Ihr Code "nicht funktioniert"? Was hast du erwartet und was ist eigentlich passiert? Wenn Sie eine Ausnahme/einen Fehler erhalten haben, geben Sie die Zeile, auf der sie aufgetreten ist, und die Ausnahme-/Fehlerdetails an. Bitte [bearbeiten] Sie diese Details oder wir können Ihnen möglicherweise nicht weiterhelfen. – FrankerZ

+0

können Sie die in dieser Antwort genannte Funktion verwenden http://stackoverflow.com/questions/1634782/what-is-the-most-accurate-way-to-retrieve-a-users-correc-ip-address-in- php – Diab

+0

@Diab Was hat das mit seiner Frage zu tun? – FrankerZ

Antwort

0

so, wie Sie die IP abrufen wird in einigen Fällen nicht funktionieren, so müssen Sie zuerst, um es mit der Funktion here umgesetzt. Für die Abfrage selbst ruft die Abfrage nur die ersten 5 Zeilen ab, daher müssen Sie einen "where" -Teil hinzufügen, damit die Abfrage etwa so lautet: $ ip_query = "SELECT ip_address FROM-Tabelle where ip = $ ipname"; dann nach, dass Sie die Ausgabe von mysql_query nicht vergleichen sollte, ist die Ausgabe eine MySQL-Ressource Sie eine andere Funktion das Ergebnis

$num_rows = mysql_num_rows($ip_add) 
if ($num_rows>=1) { 
$ip = mysql_result($ip_add,0,'ip_address'); 

// then compare the ip variable with the one you have from the function 

} 
0

Suche zu erhalten, IP Address durch gegeben function verwenden sollten. Check-in Abfrage dort selbst. Wenn ip address vorhanden ist, drucken Sie guest name.

[HINWEIS: Ich verwendete YourTableName als Tabellenname. Setzen Sie geeigneten Tabellennamen in Abfrage.]

<?php 
$ipname = getIpAddress(); 

$query = mysql_query("SELECT guest_name FROM `YourTableName` WHERE ip_address = '$ipname'"); 
$countUser = mysql_num_rows($query); 

if($countUser > 0){ 
    while($row = mysql_fetch_array($query)){ 
    echo "User Name: ".$row['guest_name']."<br>"; 
    } 
} else { 
    //Your Logic 
} 

function getIpAddress() { 
    if (!empty($_SERVER['HTTP_CLIENT_IP'])) { 
    return $_SERVER['HTTP_CLIENT_IP']; 
    } else if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) { 
    $ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']); 
    return trim($ips[count($ips) - 1]); 
    } else { 
    return $_SERVER['REMOTE_ADDR']; 
    } 
} 
?> 

NOTE: The mysql extension is deprecated and will be removed in the future: use mysqli or PDO instead

Verwandte Themen