<p class="sj">前几天把洗米器网站的留言本做了一点修改,加了一个显示IP地址和具体地理位置的功能,主要原因是怕匿名用户发一些违规的言论,而自己又疏于及时核查,导致一些不必要的负面影响。显示IP到是简单,只是显示IP的地理位置有些困难,自己做个数据表吧,不能经常更新,况且又要重新到服务器上更改,有点麻烦啊,从网上找到了一个QQ的提供的接口,是客户端的JS代码,asp里不能调用其变量存入后台数据库,世上无难事,就怕有心人!变通一下,问题终于迎刃而解……</p>
<span class="fcgreen">一、先看QQ提供的接口客户端脚本:

</span> 

 <p class="mycode allbordeer"> 

 <script type="text/javascript" src="http://fw.qq.com/ipaddress" charset="gb2312"> </script> <script>document.write("你的IP是:"+IPData[0]+",来自:"+IPData[2]+IPData[3]); </script></p> 

 <span class="fcgreen">二、显示效果如下:</span> 

 <div class="fcwhite fontb"><br> 

 <script type="text/javascript" src="http://fw.qq.com/ipaddress" charset="gb2312"> </script> <script>document.write("你的IP是:"+IPData[0]+",来自:"+IPData[2]+IPData[3]); </script></div> 

 <br> 



 <span class="fcgreen">三、脚本分析:</span>


<p class="sj">如果只是打算在前端页面显示IP地址和地理位置,那么在您需要显示的地方加入以上代码即可。变量IPData[0]存储的就是客户端的IP地址,IPData[2]和IPData[3]存储的是该IP的地理位置,形如:某某省某某市。但阿零用的是ASP,现在想把留言人的IP地理位置加入数据库。可是ASP不能直接使用JS的变量,怎么办呢?</p>
<span class="fcgreen">三、变通方法:</span><br>


源代码大体如下:<br>

<p class="mycode allbordeer"> 

 1  <form name="mybook" action="mybook.asp" method="post"><br> 



 2  <textarea name="mycontent"></textarea><br> 



 3  <input type="hidden" name="phyip" id="phyip"> <br> 



 4  <input type="hidden" name="ip" id="ip"><br> 



 5  <input type="submit" name="mygo" id="mygo" value="发表留言"><br> 



 6  <input type="reset" value="清空重填"><br> 



 7  </form><br><br> 



 8  <script type="text/javascript"><br> 



 9  <script type="text/javascript" src="http://fw.qq.com/ipaddress" charset="gb2312"> <br> 



 10  </script> <br> 



 11  document.getElementById("phyip").value = IPData[2]+IPData[3];<br> 



 12  document.getElementById("ip").value = IPData[0];<br> 



 13  </script> 



 </p> 

 <span class="fcgreen">四、代码说明:</span> 

 <p class="sj">


为了前端页面的美观和统一,以上代码在第三、第四行加入了两个隐藏域,作用就是原来存储客户端的IP和地理位置的。

</p> 

 <p class="sj">


第九行加入了QQ提供的IP接口脚本。注意第十一、十二行,是用客户端脚本设置第三的隐藏域的值为IP地理位置,设置第四行的隐藏域的值为IP地址,这样当点击“发表留言”提交时,留言信息和IP及地理位置就会被提交到处理页面mybook.asp。我们在mybook.asp里边就可以使用ASP语句request.Form("phyip")和request.Form("ip")分别获取客户端的IP信息了。是不是很简单呢!呵呵,菜鸟浅薄,高手请飘过。</p>