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?

Leith Bade

Reply via email to