Jay Paulson (CE CEN) wrote:
I'm in the process of parsing through a apache access_log file and putting the
information into a database. Right now I have the ip addresses going into a
database as a character format xxx.xxx.xxx.xxx and then later I'm creating my
queries to search for ip addresses xxx.xxx.%, which I think is really
ineffecient. Therefore, I wanted to add a new field in my database which would
be just an int value and have php convert the ip address to an int for database
insertion. Then have an sql query that would just convert that int back into
an ip address if I needed. My ultimate goal is to be able to write a query
simular to this:
SELECT * FROM Apache_Stats WHERE int_ip BETWEEN INET_ATON('xxx.xxx.0.0') AND
INET_ATON ('xxx.xxx.255.255')
Is there a function in PHP that will convert the xxx.xxx.xxx.xxx ip address to the
same number that INET_ATON() is converting it to? I know about ip2long() but in the
PHP docs it doesn't convert right unles you use the printf("%u...) function.
Thanks!
$ip_int = sprintf ( "%u", ip2long ( $ip_dotted ) );
$ip_dotted = sprintf ( "%s", long2ip ( - ( 4294967296 - $ip_int ) ) );
--
John C. Nichel IV
Programmer/System Admin (ÜberGeek)
Dot Com Holdings of Buffalo
716.856.9675
[EMAIL PROTECTED]
--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php