Considera un elenco di indirizzi IP come fornito dall'intestazione HTTP X-Forwarded-For :
10.0.0.142, 192.168.0.10, 212.43.234.12, 54.23.66.43
Vorrei sapere qual è il primo indirizzo accessibile al pubblico in tale elenco. Posso esaminarli abbastanza facilmente, ma come posso sapere quali sono accessibili al pubblico? Mi sembra (il mio occhio inesperto) che 10.0.0.142
sia una workstation, 192.168.0.10
un proxy interno ed 212.43.234.12
è un indirizzo accessibile al pubblico che viene inoltrato tramite il proxy all'indirizzo 54.23.66.43
. C'è un modo per calcolare questo nel codice?
La mia prima intuizione è che gli indirizzi che iniziano con 10.
o 192.
non sono accessibili al pubblico, ma http://simplesniff.com rivela il mio indirizzo IP di casa 192.117.111.61
. Esiste una formula per determinare quali indirizzi sono pubblici e quali sono riservati privati? Si noti che anche il tentativo di eseguire il ping del server in questione potrebbe non essere utile poiché alcuni server non risponderanno al ping e potrebbe inoltre esserci un indirizzo sulla mia rete locale che corrisponda anche all'indirizzo interno.