È sicuro assumere che $_SERVER['REMOTE_ADDR']
restituisca sempre un indirizzo IPv4?REMOTE_ADDR e IPv6 in PHP
Grazie!
È sicuro assumere che $_SERVER['REMOTE_ADDR']
restituisca sempre un indirizzo IPv4?REMOTE_ADDR e IPv6 in PHP
Grazie!
Il codice REMOTE_ADDR è impostato dal server Web, non da PHP. Se il server Web ascolta V6 e l'utente si connette in questo modo, sarà un indirizzo v6
Ho visto un indirizzo IP non valido riferito a PHP in REMOTE_ADDR da Apache 2.
E 'stato '183.60. .244.37' .
Quindi la risposta alla tua domanda, "È sicuro assumere ...", penso che sia sicuramente no, REMOTE_ADDR non può essere considerato attendibile.
Per quanto ne so è segnalato a PHP dal server, nel mio caso Apache. Perché è stato male, sto ancora cercando di capire. Lo so. È arrivato come parte di una serie di richieste di attacco. A volte era 183.60.244.37 ea volte era 183.60..244.37.
Vedere anche this.
Bello sapere, probabilmente qualche bug Apache no? –
Uno sviluppatore di php mi ha appena detto che REMOTE_ADDR proviene da cgi e quindi dalla connessione TCP del server e non da http. Ma sto ancora lavorando alla ricerca di come il server potrebbe segnalare questo a php, se questo è ciò che sta accadendo. –
+1, grazie! Cercherò di capire come posso convertire un indirizzo IPv6 in un numero. –
http://php.net/manual/en/function.inet-pton.php convertirà gli indirizzi "stringa" v4 e v6 nella loro rappresentazione impacchettata. –
@Michael IPv6 ha molte rappresentazioni di testo. Esiste una rappresentazione standard restituita da '$ _SERVER ['REMOTE_ADDR']'? – Pacerier