Adobe Flex迷你教程 –Super easy获取ip所在城市
程序员文章站
2022-04-30 10:00:05
...
获取城市最大的问题是ip对应城市数据库,我们自己建这个数据库的话太麻烦。杂办呢,网上有很多可以根据ip查城市的网站,我们就用他们。首先找一个速度比较快的ip地址查询网站。我找的是 www.ipxxx.com(大家在源代码看吧,写出来成做广告了)。接下来确定三步
1. 看网站的结果是怎么得到的,经过观察发现上述网站是通过get查询,那就好办了。
2. 看看结果页面,因为网站不会给我们提供数据源的,所以我们要从结果页面找到我们想要的东西。上述网站的结果页面很干净,过滤很方便。
3. 确定它的首页没有版权信息说不准从外部直接访问某某页面。
OK,接下来就可以开始通过这个网站获取城市了,非常简单,不到10行代码。
1.创建一个到目标网站的HTTPService。
2.处理结果页面。
OK,这样很节约我们的资源吧,不过这种方法有可能会涉及到版权问题,大家在尝试别的网站的时候要注意。
不过因为受到安全沙箱的限制我们不能直接这么用,我们可以在我们的服务器端用相同的方法取得ip, flex直接获取数据就好
[img]http://www.flextheworld.com/wp-content/uploads/2009/01/address.png[/img]
1. 看网站的结果是怎么得到的,经过观察发现上述网站是通过get查询,那就好办了。
2. 看看结果页面,因为网站不会给我们提供数据源的,所以我们要从结果页面找到我们想要的东西。上述网站的结果页面很干净,过滤很方便。
3. 确定它的首页没有版权信息说不准从外部直接访问某某页面。
OK,接下来就可以开始通过这个网站获取城市了,非常简单,不到10行代码。
1.创建一个到目标网站的HTTPService。
<mx:HTTPService method=”GET” resultFormat=”text” useProxy=”false” id=”ipGetter” url=”http://www.XXXX.com/ips.asp” result=”resultHandle(event)” fault=”faultHandle(event)” />
2.处理结果页面。
private function resultHandle(e:ResultEvent):void{
var contnet:String = e.result.toString()
var begIndex:int = contnet.indexOf(”省”)
var endIndex:int = contnet.indexOf(” “,begIndex)
if(begIndex <0){
begIndex = contnet.indexOf(”主数据:”)
endIndex = contnet.indexOf(” “,begIndex)
contnet = contnet.substring(begIndex+4,endIndex)
}else{
contnet = contnet.substring(begIndex+1,endIndex)
}
this.result.text =”结果是:”+contnet;
}
OK,这样很节约我们的资源吧,不过这种方法有可能会涉及到版权问题,大家在尝试别的网站的时候要注意。
不过因为受到安全沙箱的限制我们不能直接这么用,我们可以在我们的服务器端用相同的方法取得ip, flex直接获取数据就好
[img]http://www.flextheworld.com/wp-content/uploads/2009/01/address.png[/img]
上一篇: XML解析