Hadn't thought about it that way before. This was a useful bit of info, thanks.
-Blake On Thu, Nov 29, 2012 at 8:55 AM, William Herrin <b...@herrin.us> wrote: > On Thu, Nov 29, 2012 at 9:01 AM, Ray Soucy <r...@maine.edu> wrote: > > You should store IPv6 as a pair of 64-bit integers. While PHP lacks > > the function set to do this on its own, it's not very difficult to do. > > Hi Ray, > > I have to disagree. In your SQL database you should store addresses as > a fixed length character string containing a zero-padded hexadecimal > representation of the IPv4 or IPv6 address with A through F forced to > the consistent case of your choice. Expand :: and optionally strip the > colons entirely. If you want to store a block of addresses, store it > as two character strings: start and end of the range. > > Bytes are cheap and query simplicity is important. Multi-element > indexes are messy and the code to manage an array of integers is > messier than managing a character string in most programming > languages. memcmp() that integer array for less or greater than? Not > on a little endian machine! > > > > Here are a set of functions I wrote a while back to do just that > > (though I admit I should spend some time to try and make it more > > elegant and I'm not sure it's completely up to date compared to my > > local copy ... I would love some eyes on it to make some > > improvements). > > > > http://soucy.org/project/inet6/ > > If we're plugging our code, give my public domain libeasyv6 a try. It > eases entry into dual stack programming for anyone used to doing > gethostbyname followed by a blocking connect(). Just do a > connectbyname() with the hostname or textual IP address, the port, a > timeout and null options. The library takes care of finding a working > IPv4 or IPv6 address for the host and connecting to it in a timely > manner. > > http://bill.herrin.us/freebies/ > > Currently Linux only but if you're willing to lose timeout control on > the DNS lookup you can replace getaddrinfo_a() with standard > getaddrinfo() and the code should run anywhere. > > Regards, > Bill Herrin > > > -- > William D. Herrin ................ her...@dirtside.com b...@herrin.us > 3005 Crane Dr. ...................... Web: <http://bill.herrin.us/> > Falls Church, VA 22042-3004 > >