我一直试图想出一种用PHP将IP地址存储为无符号整数的方法,但我想我对它是如何实现的还不够熟悉,无法想出合适的函数。这是我想出来的(尽管这是错误的):
// ip 2 unsigned int
function ip2int($ipaddress) {
// turns IP into signed integer
$signed = ip2long($ipaddress);
$unsigned = sprintf("%u", $signed);
return $unsigned;
}
// unsigned int 2 ip
func
type ip_start ip_end country state city
ipv4 0.0.0.0 0255.255.255 US California Los Angeles
ipv4 1.0.0.0 1.0.0.255 AU Queensland Brisbane
我有一个包含国家、州和城市ip列表的表。
我的问题是如何从我的数据库中检测用户的ip位置
如果我使用php $ip = $_SERVER["HTTP_CLIENT_IP"
我有一个处理IPv4地址的函数:
# We need to be able to check if an ip_address in a particular range
protected function ipInRange($lower_range_ip_address, $upper_range_ip_address, $needle_ip_address)
{
# Get the numeric reprisentation of the IP Address with IP2long
$min = ip2long($lower_range_ip_addres
许多人将字符串ip转换为像这样的长java代码演示 private static int str2Ip(String ip) {
String[] ss = ip.split("\\.");
int a, b, c, d;
a = Integer.parseInt(ss[0]);
b = Integer.parseInt(ss[1]);
c = Integer.parseInt(ss[2]);
d = Integer.parseInt(ss[3]);
return (a << 24) | (b <&l
MySQL中的newsletter_ip字段被设置为无符号整数(10)。我也尝试过用INET_ATON格式化数据,但是我得到的结果看起来总是像。
下面是我的处理代码的一部分:
//Retrieve data from user and create variables
$ip_orig = $_SERVER['REMOTE_ADDR'];
$ip = ip2long($ip_orig);
//Place into database
$sql = "INSERT INTO newsletter(newsletter_email, newsletter_ip, ne
我有一些,它在一个文本文件ips.txt中。我想从该列表中获取每个IP的完整IP范围。
The following is included in ips.txt
37.123.206.198
115.84.182.49
154.16.116.35
115.84.182.49
142.250.192.14
112.78.2.75
如何获取每个ip的全网段? 1-255
Example (with first IP)
37.123.206.198
37.123.1.1
37.123.2.1
37.123.3.1
37.123.4.1
.
.
$sql = 'SELECT
c.country
FROM
ip2nationCountries c,
ip2nation i
WHERE
i.ip < INET_ATON("'.$_SERVER['REMOTE_ADDR'].'")
AND
c.code = i.country
ORDER BY
i
我使用下面的代码片段来重定向一组IP地址。我想知道如何将整个IP地址范围/块添加到我的无用数组中……
<?php // Let's redirect certain IP addresses to a "Page Not Found"
$disallowed = array("76.105.99.106");
$ip = $_SERVER['REMOTE_ADDR'];
if(in_array($ip, $disallowed)) {
header("Location: http://google.com");