How verify whether browser arrived via IPv6, IPv4, domain or number

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I want to take $_SERVER['SERVER_NAME'] and figure out whether the user
arrived by typing an IPv6-only, IPv4-only or dual IPv4/IPv6 DNS address.

It should also handle the case where the user enters a numeric address in
one of the formats the sockets inet_addr() function can handle. Such as
IPv4/IPv6 dotted decimal, octal, hex, DWORD, etc.

So far I have thought up this:

   1. Use gethostbyname($_SERVER['SERVER_NAME']) to get an address
   2. Check this address to see if it is IPv4/IPv6

Will this always work?

Also what is the best way in php to check if an address is IPv4 or IPv6?

Some people scan for ":" or ".", others use filter_var(), but these both
seem clunky to me.

Can anyone think of a better way?

Thanks,
Leith Bade
leith@xxxxxxxxxxxxxxxxxxxxx

[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux