php屏蔽地区_屏蔽指定省份访问PHP代码
Publish: December 26, 2014
Category: 文档
No Comments
其实就是利用API接口的IP查询地址来限制首页不被所在省的IP访问。
ip_config.php代码如下data->country.$areaInfo->data->area.$areaInfo->data->region.$areaInfo->data->city.$areaInfo->data->isp;
$ipjg=iconv('UTF-8','GBK',$ipjg);
return $ipjg;
}
//----------------IP-----------
function get_real_ip(){
$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']);
}
//---------------------------------
$ip=get_real_ip();
$ip_str=ipdy($ip)
?>
index.php 代码如下
另外一个$ipNum || $ip2num
$Middle= intval(($EndNum + $BeginNum) / 2);
//偏移指针到索引位置读取4个字节
fseek($fd, $ipbegin + 7 * $Middle);
$ipData1 = fread($fd, 4);
if(strlen($ipData1) < 4) {
fclose($fd);
return 'System Error';
}
//提取出来的数据转换成长整形,如果数据是负数则加上2的32次幂
$ip1num = implode('', unpack('L', $ipData1));
if($ip1num < 0) $ip1num += pow(2, 32);
//提取的长整型数大于我们IP地址则修改结束位置进行下一次循环
if($ip1num > $ipNum) {
$EndNum = $Middle;
continue;
}
//取完上一个索引后取下一个索引
$DataSeek = fread($fd, 3);
if(strlen($DataSeek) < 3) {
fclose($fd);
return 'System Error';
}
$DataSeek = implode('', unpack('L', $DataSeek.chr(0)));
fseek($fd, $DataSeek);
$ipData2 = fread($fd, 4);
if(strlen($ipData2) < 4) {
fclose($fd);
return 'System Error';
}
$ip2num = implode('', unpack('L', $ipData2));
if($ip2num < 0) $ip2num += pow(2, 32);
//没找到提示未知
if($ip2num < $ipNum) {
if($Middle == $BeginNum) {
fclose($fd);
return 'Unknown';
}
$BeginNum = $Middle;
}
}
$ipFlag = fread($fd, 1);
if($ipFlag == chr(1)) {
$ipSeek = fread($fd, 3);
if(strlen($ipSeek) < 3) {
fclose($fd);
return 'System Error';
}
$ipSeek = implode('', unpack('L', $ipSeek.chr(0)));
fseek($fd, $ipSeek);
$ipFlag = fread($fd, 1);
}
if($ipFlag == chr(2)) {
$AddrSeek = fread($fd, 3);
if(strlen($AddrSeek) < 3) {
fclose($fd);
return 'System Error';
}
$ipFlag = fread($fd, 1);
if($ipFlag == chr(2)) {
$AddrSeek2 = fread($fd, 3);
if(strlen($AddrSeek2) < 3) {
fclose($fd);
return 'System Error';
}
$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
fseek($fd, $AddrSeek2);
} else {
fseek($fd, -1, SEEK_CUR);
}
while(($char = fread($fd, 1)) != chr(0))
$ipAddr2 .= $char;
$AddrSeek = implode('', unpack('L', $AddrSeek.chr(0)));
fseek($fd, $AddrSeek);
while(($char = fread($fd, 1)) != chr(0))
$ipAddr1 .= $char;
} else {
fseek($fd, -1, SEEK_CUR);
while(($char = fread($fd, 1)) != chr(0))
$ipAddr1 .= $char;
$ipFlag = fread($fd, 1);
if($ipFlag == chr(2)) {
$AddrSeek2 = fread($fd, 3);
if(strlen($AddrSeek2) < 3) {
fclose($fd);
return 'System Error';
}
$AddrSeek2 = implode('', unpack('L', $AddrSeek2.chr(0)));
fseek($fd, $AddrSeek2);
} else {
fseek($fd, -1, SEEK_CUR);
}
while(($char = fread($fd, 1)) != chr(0)){
$ipAddr2 .= $char;
}
}
fclose($fd);
//最后做相应的替换操作后返回结果
if(preg_match('/http/i', $ipAddr2)) {
$ipAddr2 = '';
}
$ipaddr = "$ipAddr1 $ipAddr2";
$ipaddr = preg_replace('/CZ88.Net/is', '', $ipaddr);
$ipaddr = preg_replace('/^s*/is', '', $ipaddr);
$ipaddr = preg_replace('/s*$/is', '', $ipaddr);
if(preg_match('/http/i', $ipaddr) || $ipaddr == '') {
$ipaddr = 'Unknown';
}
return $ipaddr;
}
//查找字符串
function findstr($str, $substr)
{
$m = strlen($str);
$n = strlen($substr );
if ($m < $n) return false ;
for ($i=0; $i <=($m-$n+1); $i ++){
$sub = substr( $str, $i, $n);
if ( strcmp($sub, $substr) == 0) return true;
}
return false ;
}
?>
请为这篇文章评分:
( 已有 4 人评分, 平均得分: 3 分 )
Tags: php, 屏蔽, 省份
Related Posts:
php屏蔽地区_屏蔽指定省份访问PHP代码相关推荐
- sis防屏蔽程序_屏蔽机房设计方案知识
屏蔽机房基本原理来自法拉第笼设计.在没有做屏蔽的情况下,我们的电子设备会受到直击雷或间接雷等强电磁干扰源的影响导致设备无法工作或工作出现异常,最严重时出现损坏,这是比较常见的电磁干扰显现,另外一种现象 ...
- 苹果屏蔽更新_屏蔽 iOS 系统更新的最新方法,支持所有 iPhone、iPad 设备
为了进行功能性更新.封堵已知漏洞,苹果经常会推送 iOS 系统更新,但不是所有人都乐意将设备升级最新版.可是 iOS 中并未提供禁止更新的设定,因此,用户必须用各种手段达到屏蔽更新的目的. 在 202 ...
- JS屏蔽地区(城市)访问网站以及屏蔽PC端访问
JS屏蔽地区(城市)访问网站 <script type='text/javascript'>String.prototype.GetValue= function(para) {var r ...
- Windows server 2008文件服务器之二屏蔽影音文件以及指定文件名
Windows server 2008文件服务器之二屏蔽影音文件以及指定文件名 话说在windows server 2003上安装SP2后然后安装windows server 2003版本相对应的R2 ...
- sis防屏蔽程序_弱电工程屏蔽机房设计方案
屏蔽机房基本原理来自法拉第笼设计. 在没有做屏蔽的情况下,电子设备会受到直击雷或间接雷等强电磁干扰源的影响导致设备无法工作或工作出现异常,严重时出现损坏,这是比较常见的电磁干扰显现,另外一种现象就是, ...
- sis防屏蔽程序_智能化弱电工程屏蔽机房基础知识
前言: 屏蔽机房基本原理来自法拉第笼设计.在没有做屏蔽的情况下,我们的电子设备会受到直击雷或间接雷等强电磁干扰源的影响导致设备无法工作或工作出现异常,最严重时出现损坏,这是比较常见的电磁干扰显现,另外 ...
- 指定ip地址和端口号登录mysql数据库_防火墙规则,指定ip访问mysql数据库3306端口...
防火墙规则,指定ip访问mysql数据库3306端口 2019年12月08日 阅读数:6 这篇文章主要向大家介绍防火墙规则,指定ip访问mysql数据库3306端口,主要内容包括基础应用.实用技巧.原 ...
- 如何在编程时屏蔽输入法_取消屏蔽位屏蔽的动态编程
如何在编程时屏蔽输入法 by Sachin Malhotra 由Sachin Malhotra 取消屏蔽位屏蔽的动态编程 (Unmasking Bitmasked Dynamic Programmin ...
- 怎么样条件需要做屏蔽机房,屏蔽机房建设标准是什么?
互联网已经成为人们日常生活中必不可少的一部分,越来越多的人利用网络进行沟通.工作甚至购物.随着计算机系统网络建设遍布各个角落,但是系统安全问题也提到议事日程上来,计算机房的屏蔽设备就是保证系统安全要求 ...
最新文章
- 【Struts2学习笔记(1)】Struts2中Action名称的搜索顺序和多个Action共享一个视图--全局result配置...
- 聊天机器人之环境准备
- Centos7为普通用户添加sudo权限
- Webpy 0.3新手指南
- unity, eulerAngle
- SEO搜索引擎优化排名方法大全
- 好雨云帮如何对接Git Server
- android隐藏底部栏,Android4.0平板开发之隐藏底部任务栏的方法
- Java中JDK安装以及环境变量设置
- Linux Socket之send()异步通信时:Broken pipe报错
- PMC 任命Edward Sharp为首席战略及技术官
- JS编写全选,复选按钮
- Atitit 微服务之道 attilax著 1. 什么是微服务架构?	1 1.1. 、微服务与SOA的关系 :微服务架架构师面向服务架构(SOA)的一种特定实现	2 1.2. 微服务与康威定律	2 1
- 网易云镜像仓库选择镜像
- 解决github无法clone
- 企业使用Windows Sysprep工具来封装Win10、Win11操作系统(最新最全)
- python格式化输出
- 不平衡电网电压下虚拟同步发电机VSG控制策略-实现不平衡电压下控制三相电流平衡
- JUC之striped64
- DeFi:过去、现在和未来
热门文章
- CAD中如何加粗选中的字体
- centos clamav 杀毒安装与应用
- CDH健康检查报DATA_NODE_BLOCK_COUNT告警
- 2022-ICML-EquiBind: Geometric Deep Learning for Drug Binding Structure Prediction
- DRE FTR SCM
- vue问题: 解决ERROR in xxx.js from UglifyJs
- 如何将Mac磁盘映像转换为其他格式?
- 学习Vue3 第十三章(实操组件和认识less 和 scoped)
- oracle xdpyinfo,Oracle 11g安装“无法使用命令/usr/bin/xdpyinfo自动检查显示器颜色”报错解决...
- 数据结构记录--散列法实验