- 浏览: 205162 次
- 性别:
- 来自: 北京
最新评论
-
LinApex:
什么垃圾东西
通用操作日志系统设计。一次编写,所有项目共同使用! -
LinApex:
模版化SQL
谈谈IBatis的动态SQL应该改进的架构设计! -
许助云:
还在么,我今天尝试了这种方法,报错:严重: cann't ge ...
3行代码,实现IP到地理位置的反查功能 -
mentortao:
你好,可以给我发一份该文档么?fenginee#gmail.c ...
通用操作日志系统设计。一次编写,所有项目共同使用! -
youjianbo_han_87:
其实我的想法也是一样,用在内存缓存上做原子操作。至于数据库操作 ...
淘宝的秒杀我感觉并不复杂,用二次事务模式可以很容易的实现
一.功能介绍
通过传入的IP地址,返回IP所在的地理位置。如传入“58.16.209.19”,返回“贵州省六盘水市 ”。
返回的地理位置又分为3种精确度,程序可以按照自身需要选择。三种精确度分别为:地区(省直辖市级),城市(地市级),详细位置。例如对于“58.16.209.19”,三种精度的值为:
二.3行代码实现地域查询
三.性能如何?
上面的第1步需要获取IP反查服务,此服务有3个实现客户端,一个为远程方法调用(phprpc协议实现,类似hessian的一个协议),一个是socket长连接,一个nio。
针对这两种实现,在内网下进行性能测试。测试方法:单线程,串行执行查询请求。查询IP:59.66.106.0,返回地理位置:清华大学。
性能测试结果:
PHPRPC实现:执行1000次查询,耗时1339ms。
Socket实现:执行1000次查询,耗时84ms;执行10000次查询,耗时843ms。
NIO socket实现:执行1000次查询,耗时115ms;执行10000次查询,耗时1247ms。
Socket长连接模式为连接池实现,可以配置多个socket并行计算。对于绝大部分的应用,应该都能满足要求。PHPRPC为短连接,每次查询都建立一个http连接进行查询。
四.如何配置到我的系统中?
上面的IP反查为guzz的服务,因此需要应用程序首先将guzz框架配置进去。Guzz框架不具有应用侵入性,不会影响现有系统运转。配置方法:http://code.google.com/p/guzz/wiki/TutorialConfig
Guzz框架整合完毕后,只需要将IP反查服务在guzz中声明即可。声明包含3步(以socket的IP服务为例):
1. 将IP反查的实现jar包放到项目lib中。Jar包在附件中,包含源代码。
2. 在guzz.xml中增加此服务:
3. 配置服务参数(guzz的properties文件):
参数中包含连接池大小,服务地址和端口。
配置完服务以后,就可以按照上一节的方式进行IP反查了。如附件中的示例jsp实现。
五.LocationResult介绍
执行查询时,返回的是LocationResult对象,此对象有一些方法和变量按照不同精确度和用途存储地理信息。LocationResult介绍:
六.我的查询请求不多,如何配置phprpc方式的查询(不需要保持socket连接池)?
第1步:在系统中配置phprpc框架。详细请参看:http://phprpc.org
第2步:将刚才guzz.xml中IPService服务换成PHPRPC实现:
第3步:配置服务参数(properties文件):
七.其他:
1. JDK1.6+。如果使用JDK1.5,将源代码在1.5下编译即可。
2. 没看明白如何配置服务? 看这里:http://code.google.com/p/guzz/wiki/TutorialService
3. IP反查可不可以异步执行? 可以。ipService.findLocation(ip)返回的就是异步接口,在需要的时候调用get()即可;异步方法也支持超时,调用getOrCancel(5L, TimeUnit.SECONDS)可以让接口最多等待5秒,随后超时返回null。如果服务端故障,ipService.findLocation(ip)返回null。
4. 为什么会返回null? 没有查询到就返回null,null也很有用,如网易评论中的“火星网友”。
5. 支持spring IOC吗? 支持。如果使用spring,IPService可以通过spring bean配置并进行注入。这样只需要2行代码即可。
给程序用的,不是直接面向网友的。
services.guzz.org:11546只是一个服务端,在内网部署或者自己实现一个即可。
地址,端口,协议都是可以控制的。
意思是说,一个端口多种服务协议?
恩,谢谢您的建议,shard很重要。
不过在大规模应用中,多个项目之间会出现类似计算需求,通用计算在我们的项目实践中就有很高的价值,可以节省很多开发成本,让系统更快上线。
封装ip反查并不是guzz核心代码,不包含在发布包中。IP反查是guzz的一个通用计算服务实现。
计划上会再开一个项目,整理并沉淀常用的通用计算服务,以减少项目开发成本。主要包括:IP反查,身份证校验与检查(实名认证),任务调用,应用数据统计计算(如每秒钟通过应用接口读取一些数据,如帖子数,然后完成汇总和报表等,这类内容监控工具好像都没有覆盖到,为每个系统单独开发又犯不着),sql执行性能计算等等。
通用计算的另外一个用途是剥离功能,让业务系统的功能和代码量都降下来,对于大型系统,减少外围功能对于提高稳定性和维护性非常重要。这也是框架的设计目标之一。
欢迎继续这方面的讨论。
恩,准确度的确要靠IP库。收费IP据我了解一般每个月更新一次,很麻烦。你们每个系统更新一遍还是有一个集中的地方,只在1个地方做1次更新?
我的这种实现方式可以确保无论多少系统使用,只在1个地方更新就行了,而且使用的系统开发也非常简单,只要几行代码。对于IP库,这个是可以随时升级和调整的;如果大企业使用,要求更精确,可以在内网部署一套服务端,将IP库换成付费版本就行了。
纯真IP数据库,一共有37万多个IP段,应该是免费IP库中能找到的最精确的了。
services.guzz.org:11546只是一个服务端,在内网部署或者自己实现一个即可。
地址,端口,协议都是可以控制的。
通过传入的IP地址,返回IP所在的地理位置。如传入“58.16.209.19”,返回“贵州省六盘水市 ”。
返回的地理位置又分为3种精确度,程序可以按照自身需要选择。三种精确度分别为:地区(省直辖市级),城市(地市级),详细位置。例如对于“58.16.209.19”,三种精度的值为:
地区:贵州 城市:贵州省六盘水市 详细地址:六枝特区腾龙网吧
二.3行代码实现地域查询
//第1行,获取IP反查服务(JSP中写的) IPLocationService ipService = (IPLocationService) GuzzWebApplicationContextUtil.getGuzzContext(session.getServletContext()).getService("IPService") ; //第2行,执行查询。findLocation方法传入要查询的IP地址。 LocationResult result = (LocationResult) ipService.findLocation("58.16.209.19").get() ; //第3行,按照精确度要求,读取地理位置 System.out.println("城市:" + result.cityName) ;
三.性能如何?
上面的第1步需要获取IP反查服务,此服务有3个实现客户端,一个为远程方法调用(phprpc协议实现,类似hessian的一个协议),一个是socket长连接,一个nio。
针对这两种实现,在内网下进行性能测试。测试方法:单线程,串行执行查询请求。查询IP:59.66.106.0,返回地理位置:清华大学。
性能测试结果:
PHPRPC实现:执行1000次查询,耗时1339ms。
Socket实现:执行1000次查询,耗时84ms;执行10000次查询,耗时843ms。
NIO socket实现:执行1000次查询,耗时115ms;执行10000次查询,耗时1247ms。
Socket长连接模式为连接池实现,可以配置多个socket并行计算。对于绝大部分的应用,应该都能满足要求。PHPRPC为短连接,每次查询都建立一个http连接进行查询。
四.如何配置到我的系统中?
上面的IP反查为guzz的服务,因此需要应用程序首先将guzz框架配置进去。Guzz框架不具有应用侵入性,不会影响现有系统运转。配置方法:http://code.google.com/p/guzz/wiki/TutorialConfig
Guzz框架整合完毕后,只需要将IP反查服务在guzz中声明即可。声明包含3步(以socket的IP服务为例):
1. 将IP反查的实现jar包放到项目lib中。Jar包在附件中,包含源代码。
2. 在guzz.xml中增加此服务:
<service name="IPService" configName="fundIPServiceSocketClient" class="org.guzz.service.dir.impl.socket.IPLocationServiceSocketClientImpl" />
3. 配置服务参数(guzz的properties文件):
[fundIPServiceSocketClient] pool.maxActive=5 host=services.guzz.org port=11546
参数中包含连接池大小,服务地址和端口。
配置完服务以后,就可以按照上一节的方式进行IP反查了。如附件中的示例jsp实现。
五.LocationResult介绍
执行查询时,返回的是LocationResult对象,此对象有一些方法和变量按照不同精确度和用途存储地理信息。LocationResult介绍:
public class LocationResult implements Serializable { /**如:对于国外地区,值为“海外”;对于cityName中不包含省市信息的,如“清华大学”,值为地区名称,如“北京”*/ public String cityMarker ; /**查询地市级名称,如:贵州省六盘水市*/ public String cityName ; /**详细地址,如:六枝特区腾龙网吧*/ public String detailLocation ; /**地区名称,精确到省;对于国外,统一为:海外*/ public String areaName ; /** * 返回标记后的城市名称。此名称用于进行程序内的城市匹配,不用于对网友显示。 */ public String getMarkedCityName(){ if(cityMarker == null){ return cityName ; }else{ return cityMarker + cityName ; } } public String toString(){ StringBuilder sb = new StringBuilder() ; sb.append("cityMarker:").append(cityMarker) .append("cityName:").append(cityName) .append("detailLocation:").append(detailLocation) .append("areaName:").append(areaName) ; return sb.toString() ; } }
六.我的查询请求不多,如何配置phprpc方式的查询(不需要保持socket连接池)?
第1步:在系统中配置phprpc框架。详细请参看:http://phprpc.org
第2步:将刚才guzz.xml中IPService服务换成PHPRPC实现:
<service name="IPService" configName="fundIPServiceClient" class="org.guzz.service.dir.impl.IPLocationServiceClientImpl" />
第3步:配置服务参数(properties文件):
[fundIPServiceClient] rpc.protocol=phprpc rpc.serviceURL=http://services.guzz.org/service/IPService
七.其他:
1. JDK1.6+。如果使用JDK1.5,将源代码在1.5下编译即可。
2. 没看明白如何配置服务? 看这里:http://code.google.com/p/guzz/wiki/TutorialService
3. IP反查可不可以异步执行? 可以。ipService.findLocation(ip)返回的就是异步接口,在需要的时候调用get()即可;异步方法也支持超时,调用getOrCancel(5L, TimeUnit.SECONDS)可以让接口最多等待5秒,随后超时返回null。如果服务端故障,ipService.findLocation(ip)返回null。
4. 为什么会返回null? 没有查询到就返回null,null也很有用,如网易评论中的“火星网友”。
5. 支持spring IOC吗? 支持。如果使用spring,IPService可以通过spring bean配置并进行注入。这样只需要2行代码即可。
- guzzIPService.zip (36.1 KB)
- 下载次数: 806
评论
23 楼
许助云
2014-03-27
还在么,我今天尝试了这种方法,报错:严重: cann't get client. configured props:[{pool.maxActive=5, port=11546, host=services.guzz.org}].
java.net.ConnectException: Connection timed out: connect.我尝试访问host提供的网址,发现只有一句hello,是不是host有更改,或者是端口
java.net.ConnectException: Connection timed out: connect.我尝试访问host提供的网址,发现只有一句hello,是不是host有更改,或者是端口
22 楼
wtslh
2012-03-22
这个已经不维护了吗?
刚才试了一下,我当前的IP,已经不能准确提供省份城市的反查了
刚才试了一下,我当前的IP,已经不能准确提供省份城市的反查了
21 楼
macleo
2010-07-29
http://comedsh.iteye.com/blog/707304
QQwry.Dat,这个也不错....好用
QQwry.Dat,这个也不错....好用
20 楼
joknm
2010-07-20
好东西,收藏一下。
以前都找不到方法,呵呵。
以前都找不到方法,呵呵。
19 楼
berlou
2010-07-07
噱头。。。
广告嫌疑。
广告嫌疑。
18 楼
myreligion
2010-07-07
ago520 写道
这个做成网页的方式调用多方便啊
给程序用的,不是直接面向网友的。
17 楼
ago520
2010-07-06
这个做成网页的方式调用多方便啊
16 楼
liliugen
2010-07-06
demo没有给全,不好。不利于初学者
15 楼
bysshijiajia
2010-07-06
好东西啊,我们原先用QQWry.Dat,每隔一段时间都要下载一个新的QQWry.Dat文件
有了这个东西就好多了。多谢LZ!!!哈哈
有了这个东西就好多了。多谢LZ!!!哈哈
14 楼
cicl
2010-07-06
恩,支持单开个工程来做通用计算服务,并实现高度组件化,普及度可能更广,呵呵。
ps:IP反查是不是也需要包括过滤代理服务器地址以获取真实ip?感觉这个需求量还是还是有一部分的,响应国家号召,加强安全建设,呵呵
ps:IP反查是不是也需要包括过滤代理服务器地址以获取真实ip?感觉这个需求量还是还是有一部分的,响应国家号召,加强安全建设,呵呵
13 楼
mercyblitz
2010-06-23
myreligion 写道
duronshi 写道
如果客户电脑上不了网,还能起作用吗?
工作原理好像是,客户将ip送到services.guzz.org:11546,你们那再解析,最后将解析结果返送回来,
如果这样,觉着还是安装ocx好一点
工作原理好像是,客户将ip送到services.guzz.org:11546,你们那再解析,最后将解析结果返送回来,
如果这样,觉着还是安装ocx好一点
services.guzz.org:11546只是一个服务端,在内网部署或者自己实现一个即可。
地址,端口,协议都是可以控制的。
意思是说,一个端口多种服务协议?
12 楼
myreligion
2010-06-23
tedeyang 写道
封装ip反查功能应该不是guzz正确的方向。
应该只专注做一件事,并把它做好。
guzz只要做好shard就很了不起了,解决java在大规模互联网应用中的问题。
这足以使它成为非常受欢迎的开源项目。
应该只专注做一件事,并把它做好。
guzz只要做好shard就很了不起了,解决java在大规模互联网应用中的问题。
这足以使它成为非常受欢迎的开源项目。
恩,谢谢您的建议,shard很重要。
不过在大规模应用中,多个项目之间会出现类似计算需求,通用计算在我们的项目实践中就有很高的价值,可以节省很多开发成本,让系统更快上线。
封装ip反查并不是guzz核心代码,不包含在发布包中。IP反查是guzz的一个通用计算服务实现。
计划上会再开一个项目,整理并沉淀常用的通用计算服务,以减少项目开发成本。主要包括:IP反查,身份证校验与检查(实名认证),任务调用,应用数据统计计算(如每秒钟通过应用接口读取一些数据,如帖子数,然后完成汇总和报表等,这类内容监控工具好像都没有覆盖到,为每个系统单独开发又犯不着),sql执行性能计算等等。
通用计算的另外一个用途是剥离功能,让业务系统的功能和代码量都降下来,对于大型系统,减少外围功能对于提高稳定性和维护性非常重要。这也是框架的设计目标之一。
欢迎继续这方面的讨论。
11 楼
tedeyang
2010-06-23
封装ip反查功能应该不是guzz正确的方向。
应该只专注做一件事,并把它做好。
guzz只要做好shard就很了不起了,解决java在大规模互联网应用中的问题。
这足以使它成为非常受欢迎的开源项目。
应该只专注做一件事,并把它做好。
guzz只要做好shard就很了不起了,解决java在大规模互联网应用中的问题。
这足以使它成为非常受欢迎的开源项目。
10 楼
kongqz
2010-06-23
这个没啥意义吧
是想说guzz好还是想推广你那个外网的ip地址库?
就是一个封装的webservice而已
没看懂
是想说guzz好还是想推广你那个外网的ip地址库?
就是一个封装的webservice而已
没看懂
9 楼
nickycheng
2010-06-23
<p>我以前都在用MaxMind提供的api,也是很方便的,看它的ip地址数据库也比较全</p>
<p> </p>
<p><a href="http://www.maxmind.com/" target="_blank"><span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: large;">MaxMind</span></span></a></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><a href="http://www.maxmind.com/app/geolitecity" target="_blank"><span style="font-size: large;">GeoLite City</span></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><span class="kickerblue"><span style="font-size: large;"><a href="http://www.maxmind.com/app/api" target="_blank">APIs for GeoIP
Products</a></span></span></span></p>
<p> </p>
<p> </p>
<p> </p>
<p><a href="http://www.maxmind.com/" target="_blank"><span style="font-family: arial,helvetica,sans-serif;"><span style="font-size: large;">MaxMind</span></span></a></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><a href="http://www.maxmind.com/app/geolitecity" target="_blank"><span style="font-size: large;">GeoLite City</span></a></span></p>
<p><span style="font-family: arial,helvetica,sans-serif;"><span class="kickerblue"><span style="font-size: large;"><a href="http://www.maxmind.com/app/api" target="_blank">APIs for GeoIP
Products</a></span></span></span></p>
<p> </p>
<p> </p>
8 楼
myreligion
2010-06-23
love_ai87 写道
我们公司还是用的收费IP 库,都有误差,更何况免费的
恩,准确度的确要靠IP库。收费IP据我了解一般每个月更新一次,很麻烦。你们每个系统更新一遍还是有一个集中的地方,只在1个地方做1次更新?
我的这种实现方式可以确保无论多少系统使用,只在1个地方更新就行了,而且使用的系统开发也非常简单,只要几行代码。对于IP库,这个是可以随时升级和调整的;如果大企业使用,要求更精确,可以在内网部署一套服务端,将IP库换成付费版本就行了。
7 楼
love_ai87
2010-06-22
我们公司还是用的收费IP 库,都有误差,更何况免费的
6 楼
myreligion
2010-06-22
dmqianlicao 写道
什么搜索三行代码,这个没有意义的,这是个噱头。愿意的话,一行代码也是可以的。
关键还是IP的这个地址映射是否全面,准确。
关键还是IP的这个地址映射是否全面,准确。
纯真IP数据库,一共有37万多个IP段,应该是免费IP库中能找到的最精确的了。
5 楼
dmqianlicao
2010-06-22
什么搜索三行代码,这个没有意义的,这是个噱头。愿意的话,一行代码也是可以的。
关键还是IP的这个地址映射是否全面,准确。
关键还是IP的这个地址映射是否全面,准确。
4 楼
myreligion
2010-06-22
duronshi 写道
如果客户电脑上不了网,还能起作用吗?
工作原理好像是,客户将ip送到services.guzz.org:11546,你们那再解析,最后将解析结果返送回来,
如果这样,觉着还是安装ocx好一点
工作原理好像是,客户将ip送到services.guzz.org:11546,你们那再解析,最后将解析结果返送回来,
如果这样,觉着还是安装ocx好一点
services.guzz.org:11546只是一个服务端,在内网部署或者自己实现一个即可。
地址,端口,协议都是可以控制的。
发表评论
-
大型系统设计第1课--可扩展的数据库层架构设计 PDF分享
2011-03-24 21:03 2501《手把手,教你编写1个可以并行运行在5台数据库上的留言板》 ... -
轻松将一张大表分切到不同的机器中
2011-01-18 11:03 2038将一张大表分切成N张小表,在将这些小表分布到不同的数据 ... -
GuzzServices发布PHP客户端
2010-12-23 12:25 1938已经实现了:IP反查,敏感词审查,以及从html代码中 ... -
3行代码,实现高效的敏感词管理与内容过滤模块
2010-10-26 08:35 4492一.功能介绍 提供对一段内容的敏感词检查与标红服务。 ... -
guzz顺利完成千万级社区网站线上运行
2010-06-11 11:52 2235系统介绍: 某大型互 ... -
guzz1.2.8 beta2发布--支持动态加载在线调试SQL
2010-05-26 14:56 1100http://www.iteye.com/news/16208 ... -
改进架构,实现动态数据源,结束java开发生活
2010-05-26 14:55 2518如何不用写java代码来完成开发? 对于大部分的产品和项目来 ... -
guzz1.2.8 beta1核心测试覆盖率达60%
2010-05-04 14:26 928coverage report: -
guzz1.2.8 beta1基本就绪,开始支持annotation~~
2010-04-27 17:51 1184终于支持(JPA的)annotation了。 编写与测试已经 ... -
欢迎加入guzz的圈子,一起探讨大型网站数据层设计
2010-04-09 17:27 1192欢迎加入:http://guzz.group.iteye.co ... -
guzz使用效果和经验技巧分享
2010-04-09 10:50 3711我们主要是web应用,web ... -
guzz1.2.7 beta1 发布,支持异步网络服务调用
2010-03-01 11:15 1186异步调用服务是指服务在执行的同时,不阻塞当前线程的继续执行,当 ... -
guzz框架设计目标和功能介绍(新闻帖子补充)
2010-01-06 16:34 2141功能目标概述: guzz(谷子)是一套用来解决ORM、多数据 ... -
资料更新:http://www.guzz.org/
2009-11-12 14:17 1385所有资料以及资料更新转至:http://www.guzz ... -
guzz的版权以及更多资料
2009-11-10 14:46 1100The Guzz is released under Apac ... -
6. guzz taglib
2009-11-06 17:26 1482安装: 两步: 配置好guzz环境,让guzz跑起来。 ... -
5. 数据库查询操作
2009-11-06 17:25 2277GuzzBaseDao 如果继承GuzzBa ... -
4. 配置guzz_app.properties
2009-11-06 17:23 1612一般使用: guzz_app.properties用来存储系 ... -
3. 配置guzz.xml
2009-11-06 17:21 3115guzz.xml为guzz框架的核心配置文件,用于定义应用配置 ... -
2. 配置与启动guzz
2009-11-06 17:13 2593guzz程序的核心为GuzzContext对象,完成GuzzC ...
相关推荐
- "IP查询.exe" 是主执行文件,用户运行这个文件就能启动IP地理位置查询程序。 - "Form1.frm" 和 "Form1.frx" 是Visual Basic中的表单文件,其中包含了程序界面的设计和相关的资源数据。Form1可能是程序的主界面,...
5. **安全与合规**:在获取和使用IP地理位置信息时,必须遵守相关的法律法规,尊重用户隐私。不要滥用或非法获取数据,否则可能导致法律问题。 6. **本地IP获取**:在描述中提到了“本机IP”,在Windows系统中,...
GeoIP数据库包含了全球IP地址与地理位置的映射关系,包括国家、地区、城市等信息。在Java中,我们可以使用开源库如`geoip-api-java`来访问这些数据。 1. 引入依赖:首先,你需要在项目中引入GeoIP的Java库。如果...
2. **MaxMind数据库**:MaxMind是一家提供IP位置信息服务的公司,其GeoIP数据库是业界广泛使用的IP地理位置数据来源。GeoIPJava库是用于Java环境的接口,可以读取MaxMind的二进制数据库文件,获取IP地址对应的位置...
2. **IP到地理位置转换**:这部分代码可能利用了公开的IP定位服务,如MaxMind的GeoLite数据库,或者第三方API,如IP-API、IPGeolocation等。通过发送IP地址到这些服务,获取返回的JSON或其他格式的数据,解析出地理...
在“易语言源码易语言取IP及位置源码.rar”这个压缩包中,包含的是使用易语言编写的功能,即获取IP地址及对应地理位置的源代码。这个功能在很多应用场景中都非常实用,比如网络监控、数据分析或者网络安全相关的项目...
在IT行业中,IP归属地查询是一项基础且重要的功能,它能帮助我们了解互联网上的设备或用户的地理位置信息。本文将深入探讨“IP归属地查询(改良版)”的相关知识点,包括其工作原理、技术实现以及源码分析。 首先,IP...
2. IP地理位置:通过IP定位服务,可以获取IP地址对应的大致地理位置信息,如国家、城市、ISP等,常见的有IP-API、GeoIP等服务。 3. IP反查:利用WHOIS数据库,可以查询IP地址的所有者、注册日期、到期日期等信息。 4...
3. **IP查询**:通过网络请求,如使用cURL库或file_get_contents()函数,向提供IP信息的服务(如WHOIS服务、IP反查服务)发起请求,获取与目标IP相关的所有网站列表。 4. **数据处理**:收到响应后,解析返回的数据...
IP地址是由Internet分配的唯一数字标识,通过IP反查服务,如MaxMind或IP2Location等数据库,可以将IP地址转换为大致的地理位置信息,包括城市甚至具体的经纬度。同时,IP地址与特定的网络设备(如路由器或计算机)...
IP在线查询通常是指通过互联网获取指定IP地址的地理位置、网络状态、服务商等相关信息。这些信息可以通过公开的DNS查询、Whois查询、IP库比对等方式获得。在本项目中,该系统可能通过调用相应的API接口或者访问特定...
3. 脚本或程序:实现上述功能的代码,可能是Python、Perl或批处理脚本等形式。 4. 示例输入/输出:展示工具使用效果的样例数据。 5. 帮助文档:解答常见问题,提供技术支持。 6. 更新日志或版本说明:记录软件的改进...
2. **ipwhois.php**:此文件可能实现了IP反查功能,通过查询WHOIS数据库获取IP的相关信息,如注册机构、地理位置等,这有助于识别潜在的恶意IP。 3. **banIP.php**:根据名称推测,这个文件用于禁止或阻止指定IP...
在Web应用中,我们通常只能获取到IP地址,而无法直接获取物理地址,但可以通过IP反查服务间接获取到地理位置信息。 1. 获取访问者IP地址 在PHP中,有几种方法可以获取用户的IP地址: - `$_SERVER['REMOTE_ADDR']`:...
在PHP编程中,获取对应IP的物理地址,通常是指通过IP地址反查其对应的地理位置信息。这涉及到网络编程和地理定位技术。以下是一些相关的知识点: 1. **IP地址**: - IP(Internet Protocol)地址是互联网上的唯一...
对于IP地址反查,可以通过查询IP数据库,比如MaxMind的GeoIP数据库,来获取与IP相关的地理位置信息,包括国家、城市、经纬度等。在易语言中,这可能需要编写或调用外部接口(DLL)来实现,因为内置的网络模块可能不...
4. 地理位置信息:通过IP反查服务,可以获取用户大致的地理位置信息。 5. 访问状态:标记某些IP是否被标记为黑名单,用于阻止特定用户的访问。 动网论坛的“全程跟踪监控”功能可能包括以下几个方面: 1. 实时监控...
这个项目不仅能够定位用户的IP地址,还能计算出不同位置之间的距离和预计的旅行时间,并且能够提供时区信息,极大地增强了用户在Web应用中的地理位置体验。 【描述】中的关键知识点包括: 1. **...
这个工具的主要功能可能包括查询域名对应的IP地址,或者根据IP地址反查对应的域名信息,同时可能提供网络速度测试、地理位置定位等附加服务。版本号v1.3表明这是一个经过至少两次迭代优化的软件,可能在功能完善性、...
通常,我们可以通过获取用户的IP地址,然后通过IP地址反查到用户所在的大致地理位置。搜狐和126网易作为大型互联网公司,提供了IP查询的API接口,可以返回用户所在的省份和城市信息。利用这些信息,我们可以判断用户...