Можно ли хранить адрес IPv4 в виде числа (без точек)?

#ip #ipv4

#ip — адрес #ipv4

Вопрос:

Я использую пакет npm с открытым IP-адресом, чтобы получить IP-адрес на стороне клиента, затем я сохраняю его для целей аутентификации, на данный момент я сохраняю его как число, а не как строку, например: «123.123.12.123» хранится как «12312312123». если формат адреса IPv4 постоянно, проблем не будет, но я заметил, что, например, если я использую сеть 4G для доступа к своему веб-сайту, это даст мне другие форматы IP, такие как: xxx.xx.xx.xx или xxx.xxx.xx.xx. Есть ли какой-нибудь способ узнать исходный формат IP-адреса после преобразования его в число?

Ответ №1:

Вы можете хранить адреса IPv4 и IPv6 в виде чисел, но не так, как вы описываете. Технически IP-адрес — это число, и оно преобразуется в удобочитаемую форму для нас, людей.

Вы можете использовать такие функции, как inet_pton и inet_ntop (для печати в number и number для печати соответственно), чтобы получить фактическое 32 или 128-битное число, которое вы ищете.

Комментарии:

1. Спасибо, я также нашел пакет npm под названием ip-to-int, который преобразуется двумя способами.