ASP程序查看IP来源
查询IP地址的方法Google一下多的是,但是客户需要的并不是二次Google的结果,往往一个链接单击过后出现的结果会更让客户满意!
总结网络所传与实践得到如下ASP代码:
<%
function GetSourceInfo(byval url,ByVal ipstr) '这里处理POST传递参数
Set xmlhttp = CreateObject("Msxml2.ServerXMLHTTP")
strA="ip="&ipstr&"&action=2"
With xmlhttp
.Open "POST", url, False
.setRequestHeader "Content-Length",len(strA)
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.Send strA
if .status<>200 then
xmlget="error"
else
xmlget = bin2str(.responseBody)
end if
End With
set xmlhttp = nothing
GetSourceInfo=xmlget
end Function
Function bin2str(ByVal binstr)
Const adTypeBinary = 1
Const adTypeText = 2
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject("ADODB.Stream") '建立一个流对象
With BytesStream
.Type = adTypeText
.Open
.WriteText binstr
.Position = 0
.Charset = "GB2312"
.Position = 2
StringReturn = .ReadText
.close
End With
Set BytesStream = Nothing
bin2str = StringReturn
End Function
Function GetBody(ConStr,StartStr,OverStr,IncluL,IncluR) ' 这里用来传递字符
If ConStr="$False$" or ConStr="" or IsNull(ConStr)=True Or StartStr="" or IsNull(StartStr)=True Or OverStr="" or IsNull(OverStr)=True Then
GetBody="$False$"
Exit Function
End If
ConStrTemp=Lcase(ConStr)
StartStr=Lcase(StartStr)
OverStr=Lcase(OverStr)
Start = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)
If Start<=0 then
GetBody="$False$"
Exit Function
Else
If IncluL=False Then
Start=Start+LenB(StartStr)
End If
End If
Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare)
If Over<=0 Or Over<=Start then
GetBody="$False$"
Exit Function
Else
If IncluR=True Then
Over=Over+LenB(OverStr)
End If
End If
GetBody=MidB(ConStr,Start,Over-Start)
End Function
%>
<table width="768" border="0" align="center" cellpadding="4" cellspacing="6">
<tr>
<td width="100%" align="center" valign="top" bgcolor="#FFFFFF">
<%
ipdata=Request("ipdata")
If ipdata=Empty Then
%>
<table border="0" align="center" cellpadding="0" cellspacing="1" >
<FORM METHOD=POST ACTION="ip.asp" name="form" target="_blank">
<tr>
<td align="center">
<h1>查询IP地址:</h1>
<input type="text" name="ipdata" size="16">
<input type="submit" value="查询">
<input type="hidden" name="action" value="2">
</td>
</tr>
</FORM>
</table>
<br>
<%Else
response.write "<h1>查询的IP归属地"
'response.write(GetBody(GetSourceInfo("http://www.ip138.com/ips8.asp" ,ipdata),"<h1>您查询的IP","</li></ul></td>",False,False))
response.write(GetBody(GetSourceInfo("http://www.ip138.com/ips8.asp" ,ipdata),"<h1>您查询的IP","</li></ul><center>",False,False)) 'IP138最近的查询结果页特征码
response.write "</li></ul>"
End If%>
<br>
数据来自www.IP138.com
</td>
</tr>
</table>
查询IP地址的方法Google一下多的是,但是客户需要的并不是二次Google的结果,往往一个链接单击过后出现的结果会更让客户满意!
总结网络所传与实践得到如下ASP代码:
<%
function GetSourceInfo(byval url,ByVal ipstr) '这里处理POST传递参数
Set xmlhttp = CreateObject("Msxml2.ServerXMLHTTP")
strA="ip="&ipstr&"&action=2"
With xmlhttp
.Open "POST", url, False
.setRequestHeader "Content-Length",len(strA)
.setRequestHeader "CONTENT-TYPE","application/x-www-form-urlencoded"
.Send strA
if .status<>200 then
xmlget="error"
else
xmlget = bin2str(.responseBody)
end if
End With
set xmlhttp = nothing
GetSourceInfo=xmlget
end Function
Function bin2str(ByVal binstr)
Const adTypeBinary = 1
Const adTypeText = 2
Dim BytesStream,StringReturn
Set BytesStream = Server.CreateObject("ADODB.Stream") '建立一个流对象
With BytesStream
.Type = adTypeText
.Open
.WriteText binstr
.Position = 0
.Charset = "GB2312"
.Position = 2
StringReturn = .ReadText
.close
End With
Set BytesStream = Nothing
bin2str = StringReturn
End Function
Function GetBody(ConStr,StartStr,OverStr,IncluL,IncluR) ' 这里用来传递字符
If ConStr="$False$" or ConStr="" or IsNull(ConStr)=True Or StartStr="" or IsNull(StartStr)=True Or OverStr="" or IsNull(OverStr)=True Then
GetBody="$False$"
Exit Function
End If
ConStrTemp=Lcase(ConStr)
StartStr=Lcase(StartStr)
OverStr=Lcase(OverStr)
Start = InStrB(1, ConStrTemp, StartStr, vbBinaryCompare)
If Start<=0 then
GetBody="$False$"
Exit Function
Else
If IncluL=False Then
Start=Start+LenB(StartStr)
End If
End If
Over=InStrB(Start,ConStrTemp,OverStr,vbBinaryCompare)
If Over<=0 Or Over<=Start then
GetBody="$False$"
Exit Function
Else
If IncluR=True Then
Over=Over+LenB(OverStr)
End If
End If
GetBody=MidB(ConStr,Start,Over-Start)
End Function
%>
<table width="768" border="0" align="center" cellpadding="4" cellspacing="6">
<tr>
<td width="100%" align="center" valign="top" bgcolor="#FFFFFF">
<%
ipdata=Request("ipdata")
If ipdata=Empty Then
%>
<table border="0" align="center" cellpadding="0" cellspacing="1" >
<FORM METHOD=POST ACTION="ip.asp" name="form" target="_blank">
<tr>
<td align="center">
<h1>查询IP地址:</h1>
<input type="text" name="ipdata" size="16">
<input type="submit" value="查询">
<input type="hidden" name="action" value="2">
</td>
</tr>
</FORM>
</table>
<br>
<%Else
response.write "<h1>查询的IP归属地"
'response.write(GetBody(GetSourceInfo("http://www.ip138.com/ips8.asp" ,ipdata),"<h1>您查询的IP","</li></ul></td>",False,False))
response.write(GetBody(GetSourceInfo("http://www.ip138.com/ips8.asp" ,ipdata),"<h1>您查询的IP","</li></ul><center>",False,False)) 'IP138最近的查询结果页特征码
response.write "</li></ul>"
End If%>
<br>
数据来自www.IP138.com
</td>
</tr>
</table>