Jedes Mal, wenn ein Datensatz veröffentlicht wird, wird die IP-Adresse durch eine kleine geheime Information in der Datenbank ersetzt, und der durchschnittliche Besucher weiß nicht, um welche Stadt es sich handelt Wenn in der Tabelle eine weitere Spalte vorhanden ist, aber überhaupt keine Authentizität vorhanden ist, wäre es toll, wenn die IP-Adresse in eine Stadt umgewandelt werden könnte und laden Sie die Datenbank herunter. Aber es fühlt sich für diese Anforderung etwas verschwenderisch an. Glücklicherweise gibt es viele Websites, die Abfragen anbieten. Wenn ich das Ergebnis in mein Problem umwandeln kann.
Eine js-Funktion wird benötigt, wenn ein Datensatz herauskommt, ersetzen Sie die IP durch die Stadt:
Kopieren Sie den Codecode wie folgt:
<script type=text/javascript>
Funktion queryAddress(strID){
versuchen{
var qIp=document.getElementById(ip_+strID);
var qUrl='http://ip.wanvee.cn/GetIp.ashx?ipstr='+qIp.firstChild.nodeValue;
var ajax=new Ajax.Request(qUrl,{
Methode:'get',
onSuccess:function(strResponse){
var resContent=strResponse.responseText;
var strStruct=resContent.substring(resContent.lastIndexOf(,)+1,resContent.length);
qIp.innerHTML=strStruct.split( )[0];
}
});
}catch(e){}
}
</script>
Schreiben Sie einen Testfall:
<span id=ip_2>221.123.123.123</span><script type=text/javascript>queryAddress('2')</script>
<span id=ip_3>221.123.123.123</span><script type=text/javascript>queryAddress('3')</script>
<span id=ip_4>221.123.123.123</span><script type=text/javascript>queryAddress('4')</script>
Lassen Sie uns einige Abfrage-URLs auflisten, die ich gefunden habe:
http://www.ip.cn/getip.php?action=queryip&ip_url=221.123.123.123
http://ip.wanvee.cn/GetIp.ashx?ipstr=221.123.123.123
Die beiden oben genannten geben nur Text zurück
http://www.youdao.com/smartresult-xml/search.s?type=ip&q=221.123.123.123
Dies gibt XML zurück
Nachdem ich mit dem Schreiben fertig war, wurde mir klar, dass Ajax keine domänenübergreifende Übermittlung unterstützt: Wir verwenden die Lademethode von msxml, um die Ziel-URL zu laden Daten, die uns interessieren! Siehe diesen Beitrag: http://topic.csdn.net/t/20030619/12/1933920.html
Ändern Sie den js-Code leicht:
Kopieren Sie den Codecode wie folgt:
Funktion queryAddress(strID){
versuchen{
var qIp=document.getElementById(ip_+strID);
var qUrl='queryiplocal.asp?ip='+qIp.firstChild.nodeValue;
var ajax=new Ajax.Request(qUrl,{
Methode:'get',
onSuccess:function(strResponse){
qIp.innerHTML=strResponse.responseText;
}
});
}catch(e){}
}
Das Folgende ist der Quellcode der ASP-Datei:
Kopieren Sie den Codecode wie folgt:
<%
Response.ContentType=text/xml
Response.Charset=GB2312
Dim STRIP,StrPattern
strIP=Request.QueryString(ip)
strPattern=^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$
Wenn strIP= oder IsNumeric(strIP), dann
Response.End()
ElseIf Not serRegValidate(strPattern,strIP) dann
Response.End()
Ende wenn
Dim strURL:strURL=http://www.youdao.com/smartresult-xml/search.s?type=ip&q=
set parser=Server.CreateObject(MSXML2.DOMDocument)
parser.async=false
parser.ValidateOnParse=true
parser.setProperty ServerHTTPRequest,true
parser.load(strURL)
wenn parser.parseError.errorCode<>0 dann
Response.End()
Ende wenn
set currNode=parser.selectNodes(//product)
Dim strLocal:strLocal=currNode.item(0).selectSingleNode(location).text
Response.Write Split(strLocal, )(0)
%>