Как использовать GeoLite City, как получить startIpNum и endIpNum

Хорошо, я скачал с http://dev.maxmind.com/geoip/legacy/geolite/ GeoLite City база данных.

Значения в GeoLiteCity-Blocks.csv

startIpNum,endIpNum,locId
"16777216","16777471","17"

Однако я понятия не имею, как конвертировать ips в эти диапазоны startIpNum и endIpNum. Я не могу найти на их сайте, и они ссылаются на здесь

Какой алгоритм конвертировать ip v4 в этот?

большое спасибо

2 ответа

Решение

Это зависит от того, какой язык программирования вы используете.

В php вы можете использовать ip2long и long2ip для работы с ips.

string long2ip ( string $proper_address )
The function long2ip() generates an Internet address in dotted format (i.e.: aaa.bbb.ccc.ddd) from the proper address representation.

http://php.net/manual/en/function.long2ip.php

Пример с указанными вами ips: http://sandbox.onlinephpfunctions.com/code/3decd3d4818a02d65b9a80cf2dc1c70297b0d2d5

Если бы вы использовали Python, вы могли бы использовать

>>> import socket, struct
>>> socket.inet_ntoa(struct.pack('!L', 16777216))
'1.0.0.0'

конвертировать из целого числа в строку IP.

Другие вопросы по тегам