ma anche tutto quel casino per controllare l'ip è inutile così come è inutile vedere se viene da un proxi col forwarded... l'unico è il remote address.
Una volta J aveva funzionalità di filtro... ma in mancanza di queste puoi usare quella di php filter() che ha la possibilitù di validare gli ip.
poi ci sono gli ipv4 e gli ipv6...
piuttosto puoi fare una richiesta inversa per il dns