问题标签 [ip2long]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - 使用 ip2long 比较 IP 范围
我正在尝试按照ip2long
本教程中的描述使用 IP:
如何检查 IP 地址是否在 PHP 中两个 IP 的范围内?
代码如下:
我已经尝试过切换高低 IP 并且仍然得到相同的结果。
为什么我的脚本无法检测到 IP 实际上在范围内?
注意:我需要将用户的 IP 与广泛的范围进行比较,例如:1.1.2.0 - 1.2.2.0。
php - 如何将 32 位系统上的 ip2long 负值存储到 MySQL
我必须将 IP 地址存储到在 32 位系统上运行的 MySQL 表中。
在 64 位系统上,我会简单地使用INT(10) UNSIGNED
,因为ip2long
它始终是一个绝对值。
如何让它在 32 位上工作?我有两个选择。
- 删除
UNSIGNED
并存储负值,但我不确定一旦完成此操作是否仍有可能值太大或太小(因为上限将减少一半以允许下限为负) - 使用
sprintf("%u",ip2long( $ip ))
结帐这篇文章(可能会比 1 慢。)
还有其他解决方案吗?
php - 无法让 ip2long() 工作
我正在尝试比较一些存储为字符串的 IP 地址。我读到ip2long()
将字符串转换为整数,所以我正在玩它,看看它是否会做我想要的。所以,最初,我只是想看看转换后的 IP 是什么样子。我编写了以下代码来查看它,但没有任何内容被转换。我看不出我做错了什么。这是代码:
以下是结果示例:
IP 地址为 172.26.0.10 --- ip long 转换为
IP地址为172.26.0.31 --- ip long转换为
IP地址为172.26.0.32 --- ip long转换为
IP地址为172.26.0.33 --- ip long转换为
这是一个var_dump()
用于 IP 并转换为整数的示例:
php - 如何在 MySQL 中使用 INET_ATON 对 IP 地址进行通配符搜索?
我发现这种方法可以使用 INET_ATON 将 MySQL 数据库中的 IP 地址存储为整数:https ://stackoverflow.com/a/5133610/4491952
由于 IPv4 地址有 4 个字节长,您可以使用正好有 4 个字节的INT
( UNSIGNED
):
对于 IPv6 地址,您可以使用 aBINARY
代替:
并使用PHP 的inet_pton
andinet_ntop
进行转换:
但是如何使用 INET_ATON 和 PHP 的 ip2long 函数进行通配符搜索,例如 192.168.%?
php - long2ip 不适用于数据库中的字符串
我对 long2ip 函数有疑问。使用来自 $_SERVEUR 或字符串 var 的数据,它工作正常,给了我正确的 IP。但是使用数据库中的字符串,结果是 0.0.0.0 。
我在 64 位服务器上运行,mysql 5.0.11
php - 如何使用 PHP 简化 IP 地址?尝试 long2ip(ip2long(address))
我的系统包括一个第三方盒子,它存储 IP 地址并将它们与从我的 Web 界面发送的值进行比较。我有一个问题,用户将第三方盒子的网络掩码输入为 255.255.255.000,而盒子将其存储为 255.255.255.0。然而,下次盒子重新启动并被告知掩码包含 000 时,它会断定这些值不同,并更新其数据库并重新启动。并重新启动。并重新启动。
我的意图是通过将网络掩码以简化形式 255.255.255.0 存储在我自己的系统中来解决这个问题(作为另一个示例,将 010.001.002.005 存储为 10.1.2.5)。但我是 PHP 的新手。我尝试$mask = long2ip(ip2long($mask))
了将条目转换为标准化形式的代码,但只得到了 0.0.0.0。我需要做一些特别的事情来将 IP 转换为 long 和 back 吗?有没有更好的方法来简化这个?
php - 从ip地址计算+1 ip地址
我正在使用 ip2long 计算子网地址、广播地址和通配符掩码,它可以工作,但我需要从特定 IP 地址计算 +1 IP 地址,例如 10.10.10.7 我需要对 +1 IP 地址求和并得到10.10.10.8
我正在使用此代码来计算子网......但我不知道是否有可能得到它。
php - 函数 ip2long 在类中失败
当我在类中使用 ip2long 函数时,它不会返回有效结果。如果我在类之外调用该函数,如图所示,它将返回一个有效结果。但是,如果我使用该类,则转换将被忽略。所以我认为问题出在课堂上,但不知道那是什么。请有人指出我的错误,好吗?
php - ip2long("012.012.012.012") 在 Linux 上返回 false
假设 IPv4 地址表示中有前导零,例如012.012.012.012
.
为了抑制前导零,我只需编写以下代码,它就可以在我的 Mac 上按预期工作:
但是这段简单的代码在 CentOS 7 上不起作用,它似乎ip2long("012.012.012.012")
返回false
值:
两个 PHP 版本是相同的,我希望它们返回完全相同的值。我还阅读了ip2long 文档,并试图找出这种行为是否有任何特殊选项/配置,但没有运气。
有人能引导我走向正确的方向吗?是什么让他们与众不同?我该怎么办?
php - 你能帮我理解为什么我的最后一个 ip2long 是空的吗?
我已经战斗了好几个小时了...
我想了解我的 ip 是否包含在 ip 范围列表中。
列表来自一个文件,我做了一个 foreach 和一个 if
......它不起作用......
我认为原因是这样的,如果在我的 foreach 中添加以下内容:
我得到的结果如下所示:
“末日”去哪儿了?ip2long($end)
$end 存在,有效,但 ip2long($end) 为空...
为什么?什么?在哪里?谁?
我已经为此奋斗了几个小时,但有些东西不起作用,你能帮我摆脱这个烂摊子吗?