Hi Jonathan,

my IP was greter thant 127.0.0.0 (207.x.x.x), when i recorder this ip, the ip recorded in the BD is 0.0.0.0 ....

The probleme is that that the php function ip2lon return a negative number (on my windows pc, and mac OS X server), then it can't be recorded in the database column (int(10), unsigned
).
I changed manually the mysql column type to int(10) (negative and positive) and every thing work No 1 !!!
Thx for your module

in the install this should be something like that (not tested ...)

'ip1' => array(
'description' => t('contains the first IP address'),
'type' => 'int',
'unsigned' => FALSE,
'not null' => TRUE
),
'ip2' => array(
'description' => t('contains the second IP address'),
'type' => 'int',
'unsigned' => FALSE,
'not null' => TRUE
),

Regards !

Comments

jonfrancisskydiver’s picture

Could you send me the PHP version that you are using? I haven't had this issue with the default install.
Thanks,
Jonathan

jptavan’s picture

Same problem/solution for me, with PHP Version 5.2.6 and 4.4.8.

It work after reinstalling the module with the suggested change in ip_authenticator_schema ('unsigned' => FALSE).

jonfrancisskydiver’s picture

Status: Active » Fixed

If you do that change, then IP ranges won't validate properly. It will give you a false positive. I have updated the code to replace all occurrences ip2long($ip) to sprintf("%u", ip2long($ip)). That should fix the issue. On October 18 download the development version and try it out. Make certain to revert your database to the unsigned int for the ip1 and ip2 tables. Thank you for bringing the issue up.

Anonymous’s picture

Status: Fixed » Closed (fixed)

Automatically closed -- issue fixed for two weeks with no activity.