在MySQL数据库中用PHP存储IP的最佳实践是什么?有一个名为ip2long的函数 - 但这仅适用于IPv4.但是IPv6呢?
我知道一个用于IPv6 IP的PHP函数,但它在使用PHP <Version 5.3的Windows上不起作用
所以我需要在数据库中存储IP地址,但是将它们存储为stings并不是非常有效并且对我的目的来说不太方便.
所以...我怎样才能在php中将ip转换为整数,尽可能少处理,因为它每天会完成数百万次.
当然,我怎么能从integet转换回ip?
我知道这是可以一派,有一些简单的解决办法-但我要求的最快的方式,不只是为了"做X,你会得到Y",因为它实际上是很容易的事.
假设php通过cgi/mod_php/etc在web模式下运行...
是否可以安全地假设$ _SERVER ['REMOTE_ADDR']将存在,而且,它将包含一个正确的程式化(对不起,术语可能在这里...)ip(1.1.1.1 - > 255.255.255.255? )?
这不是关于天气的问题,$ _SERVER ['REMOTE_ADDR']中包含的ip将是发出请求的客户端的真实IP,因为我知道这可以通过修改出站tcp数据包来"欺骗"...
只是简单地:
a)如果在web模式下运行php,$ _SERVER ['REMOTE_ADDR']将始终存在.b)如果$ _SERVER ['REMOTE_ADDR']确实存在,它是否总是包含一个正确的语法化ip?
谢谢.
我有一个托管在 firebase 中的网站,该网站在一天之内完全传播开来。由于我没有预料到,我没有安装任何分析工具。但是,我想知道访问次数或下载次数。我唯一可用的指标是下载的 GB:686,8GB。但我很困惑,因为如果我用 Chrome 的控制台打开网站,我会得到两个关于页面大小的不同指标:传输的 319KB 和 1.2MB 的资源。此外,并非所有这些东西都是从 firebase 传输的,而是从其他 CDN 传输的,如您在屏幕截图中所见。计算我访问次数的正确方法是什么?
我是一名iphone开发者 - 网络开发者的新手,所以请耐心等待!
我目前正在使用MAMP进行本地测试.
我的网站上有一个高度安全的部分.除了需要用户/通行证 - 它还会检查用户的IP.如果以前未使用该IP帐户,则会将该IP以及唯一ID添加到保留表中,并向用户发送电子邮件,要求确认从该位置访问其帐户.
如果用户登录,并且他们的IP与我的"允许"表中与其用户ID关联的任何IP都不匹配,则执行上述任务,他们会收到一封电子邮件.
我用来生成他们点击的链接的URL的代码看起来有点像这样:
if (preg_match('/^127./',$ip)) {
// accessed from this machine
$val_url = "http://localhost:8888/mywebsite/admin/aproove_ip.php?email=$admin_email&val=$hash";
}
else if (preg_match('/^192\.168./',$ip)) {
// accessed form a local networked computer
$val_url = "http://super.local:8888/mywebsite/admin/aproove_ip.php?email=$admin_email&val=$hash";
// note super.local is my machine's address, 8888 is MAMP port
}
else {
// accessed from the WWW
$val_url = "http://www.mywebsite.com/admin/aproove_ip.php?email=$admin_email&val=$hash";
}
Run Code Online (Sandbox Code Playgroud)
现在,这在我的计算机上进行测试时非常有效.
但是,我决定(不要问为什么)从我的iPod Touch和它发送给我的电子邮件(验证IP)进行测试,它给了我完整的在线地址,好像它是从WWW访问的(即两者都没有)对正则表达式的满意度).我查看了包含请求的保留表,并且请求的IP是:fe80::da30:62ff:fe18:6681.
我猜那是ipv6? - 我需要知道的是以下内容:
我非常感谢任何有关这方面的建议,因为我觉得它真的令人困惑