很多站长朋友们都不太清楚php判断国内ip,今天小编就来给大家整理php判断国内ip,希望对各位有所帮助,具体内容如下:
本文目录一览: 1、 php 判断来访IP地址是国内还是国外的 2、 php 判断ip是国内还是国外 3、 PHP判断IP是中国IP还是外国IP 4、 php如何判断IP为有效IP地址 5、 判断ip是不是大陆的 php 判断来访IP地址是国内还是国外的PHP服务器变量(环境变量)中的客户端IP地址:
炒一个给你:
if (!empty($_SERVER['HTTP_CLIENT_IP'])) {
$ip = $_SERVER['HTTP_CLIENT_IP'];
} elseif (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
$ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
$ip = $_SERVER['REMOTE_ADDR'];
}
php 判断ip是国内还是国外需要引用一个PHP的IP库 ip_php.zip
我在网站头部引用jquery进行判断
<script type="text/javascript" src="/js/jquery-1.3.2.min.js"></script>
<script type="text/javascript" language="javascript">
function initurl() {
$.ajax({
type:"GET",
url:"checkip.php",
dataType:"html",
data:"time="+new Date(),
cache: false,
async: false,
beforeSend:function(XMLHttpRequest) {
},
success:function(msg) {
//如果返回值为1表示访问者为中国地区的ip
if(msg == 1){
//alert('I am China ip');
}
else {
//alert('I am not China ip');
location.href="英文网站";
}
},
complete:function(XMLHttpRequest,textStatus) {
},
error:function() {
}
});
}
</script>
<body onload="initurl()">
...
</body>
checkip.php页面的代码
$userip=$_SERVER['REMOTE_ADDR'];
//引用ip库的文件 把ip.zip里的全部文件放在lib目录下
include_once('/lib/iplimit.class.php');
$iplimit = new iplimit;
if($iplimit->setup($userip))
{
echo 1;
}
else
{
echo 2;
}
PHP判断IP是中国IP还是外国IP//返回ip所在的区域 外国ip精确到国名
function getcposition($ip){
try {
$res1 = file_get_contents("");
$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为有效IP地址不需要正则表达式来判断,因为在php5.2.0之后,有专门的函数来做这个判断了。
判断是否是合法IP
if(filter_var($ip, FILTER_VALIDATE_IP)) {
// it's valid
}
else {
// it's not valid
}
判断是否是合法的IPv4 IP地址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
// it's valid
}
else {
// it's not valid
}
判断是否是合法的公共IPv4地址,192.168.1.1这类的私有IP地址将会排除在外
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4 | FILTER_FLAG_NO_PRIV_RANGE)) {
// it's valid
}
else {
// it's not valid
}
判断是否是合法的IPv6地址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) {
// it's valid
}
else {
// it's not valid
}
判断是否是public IPv4 IP或者是合法的Public IPv6 IP地址
if(filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_PRIV_RANGE | FILTER_FLAG_NO_RES_RANGE)) {
// it's valid
}
else {
// it's not valid
}
判断ip是不是大陆的package com.example.countrytest;
import org.apache.http.HttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONObject;
/*
* 通过ip判断是否是中国内地
*/
public class IpChina {
private static final String ipUrl = "";
private static final String China = "\u4e2d\u56fd";
private static final String Taiwan = "\u53f0\u6e7e";
private static final String HongKong = "\u9999\u6e2f";
private static final String Macao = "\u6fb3\u95e8";
public static boolean ipIsChinaInland() {
try {
String json = getIpData();
System.out.println("json="+json);
JSONObject jsonObject = new JSONObject(json);
String country = jsonObject.getString("country");
String city = jsonObject.getString("province");
if(country!=null city!=null) {
if(country.equals(China)) {
if(city.equals(Taiwan) || city.equals(HongKong) || city.equals(Macao)) {
// deal with non-china inland
} else {
// deal with china inland
return true;
}
} else {
// deal with non-china inland
}
} else {
// deal with non-china inland
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return false;
}
private static String getIpData() throws Exception {
HttpGet httpRequest = new HttpGet(ipUrl);// 建立http get联机
HttpResponse httpResponse = new DefaultHttpClient().execute(httpRequest);// 发出http请求
if (httpResponse.getStatusLine().getStatusCode() == 200)
return EntityUtils.toString(httpResponse.getEntity());// 获取相应的字符串
return null;
}
}
关于php判断国内ip的介绍到此就结束了,不知道本篇文章是否对您有帮助呢?如果你还想了解更多此类信息,记得收藏关注本站,我们会不定期更新哦。
查看更多关于php判断国内ip php判断ip地址是否合法的详细内容...