可以将 IPv4 地址存储为数字(不带点)吗?

Is it okay to store the IPv4 address as a number (without dots)?

我正在使用 public-ip npm 包在客户端获取 IP 地址,然后我存储它用于身份验证目的,现在,我将它存储为数字而不是一个字符串,例如: “123.123.12.123”存储为“12312312123”。 如果 IPv4 地址格式不变,就不会有问题,但我注意到,例如,如果我使用 4G 网络访问我的网站,它将给我其他 IP 格式,如:xxx.xx.xx.xx 或 xxx.xxx.xx.xx。 有什么办法可以知道IP转成数字后的原始格式吗?

您可以将 IPv4 和 IPv6 地址存储为数字,但不能按照您描述的方式存储。从技术上讲,IP 地址是一个数字,它被转换为我们人类可读的形式。

您可以使用 inet_pton 和 inet_ntop 之类的函数(分别打印为数字和打印数字)来获取您要查找的实际 32 位或 128 位数字。