Ich versuche, einen BitTorrent-Tracker abzufragen und benutze Entpacken, um die Liste der IPs aus der Antwort zu erhalten. So etwas wie folgt aus:Warum gibt eine Rechtsverschiebung in PHP eine negative Zahl zurück?
$ip = unpack("N", $peers);
$ip_add = ($ip[1]>>24) . "." . (($ip[1]&0x00FF0000)>>16) . "." . (($ip[1]&0x0000FF00)>>8) . "." . ($ip[1]&0x000000FF);
Aber aus irgendeinem Grund, erhalte ich die Adressen folgende IP, wenn ich $ ip_add drucken:
117.254.136.66
121.219.20.250
-43.7.52.163
Wer weiß, was falsch sein könnte gehen?
Sie sind ein Retter! Danke vielmals. Kann nicht als Antwort innerhalb von 10 Minuten nach der Veröffentlichung akzeptieren:) Könnten Sie mir auf jeden Fall sagen, was mit meiner Methode nicht in Ordnung war? – Legend
müssen Sie vor den Berechnungen 2^31 zu $ ip hinzufügen ($ ip + pow (2, 31)) – zerkms
oder $ ip & 0x7FFFFFFF; – zerkms