هناك حاجة إلى وظيفة js في كل مرة يتم فيها إصدار سجل، يتم استبدال عنوان IP بالمدينة. لا يوجد سوى عنوان IP في قاعدة البيانات، ولا يعرف الزائر العادي أي مدينة يأتي عنوان IP من. إذا كان هناك عمود آخر في الجدول لحفظ المدينة، ولكن ليس هناك أصالة على الإطلاق، سيكون من الرائع أن يتم تحويل عنوان IP إلى مدينة وتنزيل قاعدة البيانات، ولكن يبدو أن هذا المتطلب يعد إهدارًا بعض الشيء، ولحسن الحظ، هناك العديد من مواقع الويب التي توفر الاستعلام. إذا كان بإمكاني تحويل نتيجته إلى حل للمشكلة.
هناك حاجة إلى وظيفة js كلما ظهر سجل، استبدل IP بالمدينة:
انسخ رمز الكود كما يلي:
<نوع البرنامج النصي=نص/جافا سكريبت>
وظيفة الاستعلام العنوان (ستريد) {
يحاول{
var qIp=document.getElementById(ip_+strID);
var qUrl='http://ip.wanvee.cn/GetIp.ashx?ipstr='+qIp.firstChild.nodeValue;
فار اياكس=new Ajax.Request(qUrl,{
الطريقة: "الحصول على"،
onSuccess:وظيفة(strResponse){
var resContent=strResponse.responseText;
var strStruct=resContent.substring(resContent.lastIndexOf(,)+1,resContent.length);
qIp.innerHTML=strStruct.split() [0];
}
});
}قبض(ه){}
}
</script>
اكتب حالة اختبار:
<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>
دعنا ندرج بعض عناوين URL للاستعلام التي وجدتها:
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
الاثنان أعلاه يرجعان النص فقط
http://www.youdao.com/smartresult-xml/search.s?type=ip&q=221.123.123.123
يؤدي هذا إلى إرجاع XML
بعد الانتهاء من الكتابة، أدركت أن Ajax لا يدعم الإرسال عبر النطاقات. هذه ليست مشكلة: نستخدم برنامجًا نصيًا لكتابة الصفحة. استخدم طريقة التحميل msxml لتحميل عنوان URL المستهدف البيانات التي تهمنا راجع هذا المنشور: http://topic.csdn.net/t/20030619/12/1933920.html
قم بتغيير كود js قليلاً:
انسخ رمز الكود كما يلي:
وظيفة الاستعلام العنوان (ستريد) {
يحاول{
var qIp=document.getElementById(ip_+strID);
var qUrl='queryiplocal.asp?ip='+qIp.firstChild.nodeValue;
فار اياكس=new Ajax.Request(qUrl,{
الطريقة: "الحصول على"،
onSuccess:وظيفة(strResponse){
qIp.innerHTML=strResponse.responseText;
}
});
}قبض(ه){}
}
فيما يلي الكود المصدري لملف ASP:
انسخ رمز الكود كما يلي:
<%
Response.ContentType=text/xml
Response.Charset=GB2312
خافت قطاع، strPattern
strIP=Request.QueryString(ip)
strPattern=^[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}$
إذا كانت strIP= أو IsNumeric(strIP) إذن
الاستجابة. النهاية ()
ElseIf Not serRegValidate(strPattern,strIP) إذن
الاستجابة. النهاية ()
نهاية إذا
خافت strURL:strURL=http://www.youdao.com/smartresult-xml/search.s?type=ip&q=
تعيين المحلل اللغوي = Server.CreateObject (MSXML2.DOMDocument)
parser.async=false
parser.ValidateOnParse=true
parser.setProperty ServerHTTPRequest، صحيح
parser.load(strURL)
إذا parser.parseError.errorCode<>0 ثم
الاستجابة. النهاية ()
نهاية إذا
تعيين currNode=parser.selectNodes(//المنتج)
خافت strLocal:strLocal=currNode.item(0).selectSingleNode(location).text
الاستجابة.كتابة الانقسام(strLocal, )(0)
%>