asp网站,如何利用提供的api和json的结果把ip地址转为所在城市呢?

用asp写了一个留言板,每个留言者都会显示ip,但是这样不方便,找了个api可以把ip地址转换为城市,是josn的,不知道具体该如何写。另外网站的js文件为外部文件,所以... 用asp写了一个留言板,每个留言者都会显示ip,但是这样不方便,找了个api可以把ip地址转换为城市,是josn的,不知道具体该如何写。另外网站的js文件为外部文件,所以能不能最好不要把asp代码写到js里面。

api地址:aaa.com/?app=ip.get&ip=8.8.8.8&appkey=10000
返回的结果:
{
"success":"1",
"result":{
"ip":"8.8.8.8",
"att":"美国",
"detailed":"美国",
"area_style_simcall":"美国",
"area_style_areanm":"美利坚合众国"
}
}

以上是返回的结果,网页代码如下:
.......
do while not rs.eof
%>
<li><a href="?id=<%=rs("id")%>" target="_blank"><%=rs("title")%></a> IP:<%=rs("ip")%></li>
<%
rs.movenext
loop
rs.close
set rs=nothing
%>

目标就是把上面的IP:<%=rs("ip")%>通过api转换为城市。
因为每一个页面都会有好几个ip,所以不会写了,求助!!
而且js是外部文件,最好能提交ip给外部的js,然后返回结果,然后输出,求助!!
展开
 我来答
南极潇湘水
推荐于2016-10-15 · 本人专业生产bug一百年
南极潇湘水
采纳数:515 获赞数:999

向TA提问 私信TA
展开全部
我觉得都放在在服务器端处理很不友好,
不如这样,服务器端读取ip写入页面,给IP用div抱起来,作标识,
dim k:k=1
do while not rs.eof%><li><a href="?id=<%=rs("id")%>" target="_blank"><%=rs("title")%></a> <div id="ips_<%=k%>">IP:<%=rs("ip")%></div></li><%
k=k+1
rs.movenextloop
然后在前端页面加载完成后用js遍历 id:ips_k取值IP 异步读json 用js操作json替换掉 id:ips_k

------
json这种东西就应该放在前端完成啊
更多追问追答
追问
我不会写json啊,能给代码嘛,谢谢啦,我会再追加分数的.....
追答

每一个页面都会有好几个ip,在遍历写入ip的时候直接用函数替换成地址。

IP:<%=rs("ip")%>  ==> <%=dizhi(rs("ip"))%>

函数定义如下,

<script runat="server" language="jscript">
    function getJSON(v) { return eval('(' + v + ')'); }
 </script><!--服务器端js-->
<%
'==================================================
'从2进制数据流生成内容
'==================================================
Function BytesToBstr(strBody,CodeBase)
  dim obj
  set obj=Server.CreateObject("Adodb.Stream")
  obj.Type=1
  obj.Mode=3
  obj.Open
  obj.Write strBody
  obj.Position=0
  obj.Type=2
  obj.Charset=CodeBase
  BytesToBstr=obj.ReadText
  obj.Close
  set obj=nothing
End Function
function dizhi(ip)
dim url,s
url="aaa.com/?app=ip.get&appkey=10000&ip="&ip    'api自行修改
set xhr=server.CreateObject("microsoft.xmlhttp")
xhr.open "get",url,false
xhr.send
s=BytesToBstr(xhr.responsebody,"gb2312")'注意你那个页面的编码,要不可能出乱码
'这个api我没测试,也许会有错?
set o=getJSON(s)
dizhi=o.result.ip&o.result.att&o.result.area_style_simcall    '这里写入页面的地址,可以根据json自己修改下。
end function%>
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
大神在微笑
2014-11-19 · TA获得超过423个赞
知道答主
回答量:257
采纳率:50%
帮助的人:86.5万
展开全部
提供的api能做到吧 我是菜鸟不会
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式