Une fonction js est nécessaire. Chaque fois qu'un enregistrement sort, l'adresse IP est remplacée par la ville. Friday a écrit une petite information classifiée. Il n'y a que l'adresse IP dans la base de données, et le visiteur moyen ne sait pas dans quelle ville se trouve la ville. L'adresse IP vient de. Si dans Il y a une colonne supplémentaire dans le tableau pour enregistrer la ville, mais il n'y a aucune authenticité. Ce serait formidable si l'adresse IP pouvait être transformée en ville. Bien sûr, vous pouvez descendre. et téléchargez la base de données. Mais cela semble un peu inutile pour cette exigence. Heureusement, il existe de nombreux sites Web qui proposent une requête. Si je peux transformer son résultat en mon .problème résolu.
Une fonction js est nécessaire à chaque fois qu'un enregistrement sort, remplacez l'adresse IP par la ville :
Copiez le code comme suit :
<type de script=texte/javascript>
fonction queryAddress(strID){
essayer{
var qIp=document.getElementById(ip_+strID);
var qUrl='http://ip.wanvee.cn/GetIp.ashx?ipstr='+qIp.firstChild.nodeValue;
var ajax=nouveau Ajax.Request(qUrl,{
méthode : 'obtenir',
onSuccess:fonction(strResponse){
var resContent=strResponse.responseText;
var strStruct=resContent.substring(resContent.lastIndexOf(,)+1,resContent.length);
qIp.innerHTML=strStruct.split( )(0];
}
});
}attraper(e){}
}
</script>
Écrivez un cas de test :
<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>
Listons quelques URL de requête que j'ai trouvées :
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
Les deux ci-dessus renvoient uniquement du texte
http://www.youdao.com/smartresult-xml/search.s?type=ip&q=221.123.123.123
Cela renvoie XML
Après avoir fini d'écrire, j'ai réalisé un problème. Ajax ne prend pas en charge la soumission inter-domaines. Ce n'est pas un problème : nous utilisons un script pour écrire une page. Utilisez la méthode de chargement de msxml pour charger l'URL cible. les données qui nous intéressent ! Référez-vous à cet article : http://topic.csdn.net/t/20030619/12/1933920.html
Modifiez légèrement le code js :
Copiez le code comme suit :
fonction queryAddress(strID){
essayer{
var qIp=document.getElementById(ip_+strID);
var qUrl='queryiplocal.asp?ip='+qIp.firstChild.nodeValue;
var ajax=nouveau Ajax.Request(qUrl,{
méthode : 'obtenir',
onSuccess:fonction(strResponse){
qIp.innerHTML=strResponse.responseText;
}
});
}attraper(e){}
}
Voici le code source du fichier ASP :
Copiez le code comme suit :
<%
Réponse.ContentType=text/xml
Réponse.Charset=GB2312
Dim bande, strPattern
strIP=Request.QueryString(ip)
strPattern=^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$
Si strIP= Ou IsNumeric(strIP) alors
Réponse.Fin()
Sinon, si ce n'est pas serRegValidate(strPattern,strIP), alors
Réponse.Fin()
Fin si
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, vrai
analyseur.load(strURL)
si parser.parseError.errorCode<>0 alors
Réponse.Fin()
finir si
set currNode=parser.selectNodes(//produit)
Dim strLocal:strLocal=currNode.item(0).selectSingleNode(location).text
Réponse.Write Split(strLocal, )(0)
%>