看了Moon和Grubby两场比赛。看的很爽,写点有意思的,用javascript可以获取本地ip,这个我就先不说了,我说说怎么能通过ip获取城市,能获取城市的话用处就比较大了,比如......
现在说正题。获取城市最大的问题是ip对应城市数据库,我们自己建这个数据库的话太麻烦。杂办呢,网上有很多可以根据ip查城市的网站,我们就用他们。首先找一个速度比较快的ip地址查询网站。我找的是 www.ipxxx.com(大家在源代码看吧,写出来成做广告了)。接下来确定三步
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直接获取数据就好
源文件下载
1 评论:
ips.asp 是自定义!
不错我将其完美做订房中心使用!
共享\开源
遗憾的是我的议论被贵论坛视为广告
发表评论