phpip归属地
❶ php 怎样将有范围的ip转化为整型范围
<?php
$ip=$_SERVER["REMOTE_ADDR"];//获取客户端IP
$longip=ip2long($ip);
//程序员通常将IP转换成整形写入数据库
//读取的时候再把它转成标准的IP地址
$ip=long2ip($longip);
echo'<pre>';
print_r(array($longip=>$ip));
?>
❷ 关于php获取ip的问题 $ip = $_SERVER['REMOTE_ADDR']; 请高手解答下!
因为你拿本机访问的,所以只能是127.0.0.1
如果你是局域网用户,让其他用户访问,就会变成例如:192.168.0.123之类
如果让外网用户访问,就会是外网用户的IP了
❸ PHP判断IP是中国IP还是外国IP
//返回ip所在的区域外国ip精确到国名
functiongetcposition($ip){
try{
$res1=file_get_contents("http://ip.taobao.com/service/getIpInfo.php?ip=$ip");
$res1=json_decode($res1,true);
if($res1["code"]==0){
return$res1['data']["country"].$res1['data']["region"].$res1['data']["city"]."_".$res1['data']["isp"];
}else{
return"未能获取";
}
}catch(Exception$e){
return"未能获取";
}
}
❹ php判断IP跳转页面
<?php
//第一步:透过代理获取用户真实的IP地址
$theip=getip();
function getIP()
{
static $realip;
if (isset($_SERVER)){
if (isset($_SERVER["HTTP_X_FORWARDED_FOR"])){
$realip = $_SERVER["HTTP_X_FORWARDED_FOR"];
} else if (isset($_SERVER["HTTP_CLIENT_IP"])) {
$realip = $_SERVER["HTTP_CLIENT_IP"];
} else {
$realip = $_SERVER["REMOTE_ADDR"];
}
} else {
if (getenv("HTTP_X_FORWARDED_FOR")){
$realip = getenv("HTTP_X_FORWARDED_FOR");
} else if (getenv("HTTP_CLIENT_IP")) {
$realip = getenv("HTTP_CLIENT_IP");
} else {
$realip = getenv("REMOTE_ADDR");
}
}
return $realip;
}
//第二步:通过读取IP地址库,找到所属地区
//假设表名为ip,字段有begin(起始),end(结束),area(地区代号)
$dblink=@mysql_connect("数据库服务器名","数据库用户名","数据库密码");
$dbselect=@mysql_select_db(数据库名);
if (!$dbselect){
die("数据库无法读取");
}
$result=mysql_query("select * from `ip` where `begin`<=`$theip` and `end`>=`$theip`");
$num=mysql_num_rows($result);
if($num>0){
$info=mysql_fetch_array($result);
$page=$info['area'];
else{
$page='default'; //如果IP不在数据库中,则用缺省的页面
}
//第三步:转到相关页面,如代号为"js",转到"js.php"页面
$page.='.html'; //后缀你可以自己取
echo "<script language=\"javascript\">window.location.replace(\"$page\")</script>";
?>
❺ php获取IP地址的三个函数区别
以下资料供参考:
1、REMOTE_ADDR 浏览当前页面的用户计算机的ip地址
2、HTTP_X_FORWARDED_FOR 浏览当前页面的用户计算机的网关
3.HTTP_CLIENT_IP 客户端的ip
在PHP 中使用 REMOTE_ADDR 来取得客户端的 IP 地址,但如果客户端是使用代理服务器来访问,那取到的就是代理服务器的 IP 地址,而不是真正的客户端 IP 地址。
要想透过代理服务器取得客户端的真实 IP 地址,就要使用 HTTP_X_FORWARDED_FOR 来读取。
不过要注意的事,并不是每个代理服务器都能用 HTTP_X_FORWARDED_FOR 来读取客户端的真实 IP,有些用此方法读取到的仍然是代理服务器的 IP。
还有一点需要注意的是:如果客户端没有通过代理服务器来访问,那么HTTP_X_FORWARDED_FOR 取到的值将是空的。
❻ php怎么记录访问者ip并生成日志
php获取访问者IP地址汇总
在很我的时候我们需要得到用户的真实IP地址,例如,日志记录,地理定位,将用户信息,网站数据分析等,其实获取IP地址很简单$_SERVER[\'REMOTE_ADDR\']就可以了。下面我们就来给大家汇总一下常用的几种获取IP地址的方法。
//方法1:
$ip = $_SERVER["REMOTE_ADDR"];
echo $ip;
//方法2:
代码如下:
$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];
$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];
echo $user_IP;
//方法3:
function getRealIp()
{
$ip=false;
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$ip = $_SERVER["HTTP_CLIENT_IP"];
}
if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);
if ($ip) { array_unshift($ips, $ip); $ip = FALSE; }
for ($i = 0; $i < count($ips); $i++) {
if (!eregi ("^(10│172.16│192.168).", $ips[$i])) {
$ip = $ips[$i];
break;
}
}
}
return ($ip ? $ip : $_SERVER['REMOTE_ADDR']);
}
echo getRealIp();
//方法4:
if ($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"])
{
$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];
}
elseif ($HTTP_SERVER_VARS["HTTP_CLIENT_IP"])
{
$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];
}
elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"])
{
$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];
}
elseif (getenv("HTTP_X_FORWARDED_FOR"))
{
$ip = getenv("HTTP_X_FORWARDED_FOR");
}
elseif (getenv("HTTP_CLIENT_IP"))
{
$ip = getenv("HTTP_CLIENT_IP");
}
elseif (getenv("REMOTE_ADDR"))
{
$ip = getenv("REMOTE_ADDR");
}
else
{
$ip = "Unknown";
}
echo $ip ;
//方法5:
if(getenv('HTTP_CLIENT_IP')) {
$onlineip = getenv('HTTP_CLIENT_IP');
} elseif(getenv('HTTP_X_FORWARDED_FOR')) {
$onlineip = getenv('HTTP_X_FORWARDED_FOR');
} elseif(getenv('REMOTE_ADDR')) {
$onlineip = getenv('REMOTE_ADDR');
} else {
$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];
}
echo $onlineip;
//方法6:
print "您的IP地址是:";
if(!empty($_SERVER["HTTP_CLIENT_IP"])){
$cip = $_SERVER["HTTP_CLIENT_IP"];
}
elseif(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])){
$cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
}
elseif(!empty($_SERVER["REMOTE_ADDR"])){
$cip = $_SERVER["REMOTE_ADDR"];
}
else{
$cip = "无法获取!";
}
print $cip;
保存TEXT中
<?php
$ip = $_SERVER['REMOTE_ADDR'];
$time = gmdate("H:i:s",time()+8*3600);
$file = "123.txt" ;
$fp=fopen ("123.txt","a") ;
$txt= "$ip"."----"."$time"."\n";
fputs($fp,$txt);
?>