当用户登录时,我想在数据库中保存他们的IP.我该怎么办?MySQL字段最适合使用哪种类型?PHP代码如何获得IP看起来像?
我正在考虑将它用作登录/会话内容的额外安全功能.我正在考虑检查用户从数据库登录的IP,用户现在拥有的IP作为检查会话的补充.因此,它首先检查会话,然后检查您是否有有效的IP.
这是一个很好的额外功能吗?还有什么其他方法可以让它更安全?
即使他们使用像hidemyass.com这样的代理网站,我也想从我网站上的用户那里获得真实的IP地址
这是我的代码并认为它有效,但我测试了它,但它没有
<?php
function getRealIpAddr()
{
if (!empty($_SERVER['HTTP_CLIENT_IP'])) //check ip from share internet
{
$ip=$_SERVER['HTTP_CLIENT_IP'];
}
elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) //to check ip is pass from proxy
{
$ip=$_SERVER['HTTP_X_FORWARDED_FOR'];
}
else
{
$ip=$_SERVER['REMOTE_ADDR'];
}
return $ip;
}
?>
Run Code Online (Sandbox Code Playgroud)
我认为这段代码可行,但代理仍然绕过它.
提前致谢.
我在网上找到了这个脚本:
<?php
$v_ip = $REMOTE_ADDR; $v_date = date("l d F H:i:s");
$fp = fopen("ips.txt", "a"); fputs($fp, "IP: $v_ip - DATE: $v_date\n\n"); fclose($fp);
?>
Run Code Online (Sandbox Code Playgroud)
创建条目 - 但是,不显示IP.创建的条目如下所示:
IP: - DATE: Wednesday 09 March 03:36:15
IP: - DATE: Wednesday 09 March 03:36:41
Run Code Online (Sandbox Code Playgroud)
有什么问题?
我试图使用hostip来保存到DB用户的一般区域/位置,根据IP地址.但是我不确定如何解析我收到的输出中的数据.
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$data = json_decode(file_get_contents("http://api.hostip.info/get_html.php?ip=$ip")); //<-not sure how
$country = $data['Country'];
$city = $data['City'];
?>
Run Code Online (Sandbox Code Playgroud)
你可以在这里看到我如何收到数据:http: //api.hostip.info/get_html.php?ip = 00.0.00.00
另一种选择是在这里使用第一个答案(使用ipinfodb):从PHP获取IP的位置详细信息,但它甚至不显示任何数据,即使我尝试在URL中插入我的IP,更不用说解析结果了,所以我改变了以上.
我正在尝试以表单输入值显示用户国家/地区(基于他们的IP).
这是我到目前为止的代码..
<input style="display:block" type="text" name="country" id="country" value="<?php
$pageContent = file_get_contents('http://freegeoip.net/json/echo $_SERVER['REMOTE_ADDR']');
$parsedJson = json_decode($pageContent);
echo $parsedJson->country_name; ?>" />
Run Code Online (Sandbox Code Playgroud)
我正在使用PHP JSON-decode从"http://freegeoip.net/json/(IP ADDRESS)"获取数据.
该网站对IP地址进行地理编码并返回国家/地区名称.
我想要做的是能够将用户IP地址替换为该网址,然后返回用户的国家/地区名称.我能想到的最好方法是使用
<?php echo $_SERVER['REMOTE_ADDR']; ?>
Run Code Online (Sandbox Code Playgroud)
但当我把它放进去时,我得到一个服务器错误.
我该怎么做呢?
我正在尝试使用此方法获取远程IP:
String remoteAddress = ((ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes()).getRequest().getRemoteAddr();
Run Code Online (Sandbox Code Playgroud)
我在控制器中调用它,但它返回0:0:0:0:0:0:0:1.怎么了?
我知道当我请求example.com时,我的浏览器实际上是对example.com:80的侮辱.但是我的ISP会阻止80端口监听,所以如果端口80被阻止,我如何收到请求的响应?它应该不起作用,不是吗?
据我所知,我可以使用"clone"来创建进程和命名空间,但以这种方式创建的命名空间没有名称.例如,我使用参数:CLONE_NEWNS创建网络命名空间,但在命令"ip netns list"中,没有命名空间列表,因为创建的命名空间没有名称.但我可以使用命令"ip netns add xxx"来创建名为"xxx"的命名空间.
我想知道如何使用系统调用"clone"创建名称命名空间.
有时Web开发人员使用IP地址块或范围来处理来自该IP范围(IP块)的流量,当我们想要阻止机器人访问网站和更多用途时也使用ip范围.
我无法理解一件事,我在这里看到有关IP的信息http://ipinfo.io/AS16509,我读了类似"103.246.150.0/23有512个ip地址"的内容,
好的,但"/ 23"在"103.246.150.0/23"中的含义是什么?在过去,每当我读到类似"103.246.150.0/23"的内容时,我只是认为它意味着23个IP地址,如103.246.150.0,103.246.150.1,103.246.150.2 ....... 103.246.150.23.但事实并非如此,它包含512个IP,请在此处阅读http://ipinfo.io/AS16509,
那么"/ 23"是什么意思?
例如,facebook提供了一系列IP来处理他们的机器人
31.13.24.0/21
66.220.144.0/20
什么是IP以上,IP多少?谢谢
ip ×10
php ×5
java ×2
browser ×1
dns ×1
file ×1
forms ×1
geocode ×1
geolocation ×1
input ×1
ip-address ×1
ip-blocking ×1
linux ×1
location ×1
mysql ×1
networking ×1
servlets ×1
spring ×1
tcp ×1