首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

怎么获得客户端所在地区,例如“山东省青岛市”,小女重谢!请帮帮忙

2012-03-29 
如何获得客户端所在地区,例如“山东省青岛市”,小女重谢!请帮帮忙1:用户访问我的网站的时候,我怎么获得客户

如何获得客户端所在地区,例如“山东省青岛市”,小女重谢!请帮帮忙
1:用户访问我的网站的时候,我怎么获得客户端在什么地区。?
2:如何知道他是通过什么方式查看我的网站的,例如“直接输入地址”,“通过链接”等。?
3:如何获得客户端的分辨率?
4:如何获得客户端是什么操作系统,是什么样的浏览器?
很急,请帮帮忙!

[解决办法]
1.通过IP,查IP资源库判断
2.检查HTTP_REFERER
3.用javascript,screen对象的width和height属性
4.用javascript,navigator对象的appCodeName,appName,appVersion...
[解决办法]
1 自己写 类统计代码. 你需要的这些都可以从JS(操作DOM) 得到.
再写入到自己的数据库里.

2 用第三方统计系统.
唯一就是后台是第三方的.
所以,你需要写一个第三方的后台模拟登陆系统. 登陆上去.把数据抓下来存库也可以,直接显示也可以.

3 人工智能(花$...大洋)每天帮你更新数据库就OK了)


[解决办法]
1:用户访问我的网站的时候,我怎么获得客户端在什么地区。?
由客户端IP地址.再查IP <-> 地址数据库 得到对方的地区.
2:如何知道他是通过什么方式查看我的网站的,例如“直接输入地址”,“通过链接”等。?
一般通过 Referer 来得到.但是不是很准确.因为,有些防火墙会挡掉 Referer 数据的发送.
3:如何获得客户端的分辨率?
一般用JS得到 window,document 对象属性.,计算得到.
4:如何获得客户端是什么操作系统,是什么样的浏览器?
客户端发送的POST数据包里带上了浏览器(MAYBE操作系统) 的信息. 请先学会GOOGLE 以及查阅相关RFC文档.
很急,请帮帮忙!


[解决办法]
1:用户访问我的网站的时候,我怎么获得客户端在什么地区。?

取得IP地址,计算IP1*256^3+IP2*256^2+IP3*256^1+IP4*256^0,得到一个大整数,然后在纯真IP地址数据库中即可查到地区信息。

2:如何知道他是通过什么方式查看我的网站的,例如“直接输入地址”,“通过链接”等。?

严格来说是不可能区分的。

3:如何获得客户端的分辨率?

js: screen.width screen.height

4:如何获得客户端是什么操作系统,是什么样的浏览器?

navigator.appName 返回当前浏览器名称
navigator.appVersion 返回当前浏览器版本号
navigator.appCodeName 返回当前浏览器代码名字
navigator.userAgent 返回当前浏览器用户代标志

[解决办法]
发一个IP地址归属地查询程序
<%
'#####################
' IP地址归属地查询程序
'#####################
dim IpLists,tip,sip1,sip2,sip3,sip4
IpLists = "127.0.|192.168. "
user_IP=request( "user_ip ")
if user_IP= " " then
user_IP = getIP()
end if

Function getIP()
Dim strIPAddr
If Request.ServerVariables( "HTTP_X_FORWARDED_FOR ") = " " OR InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "), "unknown ") > 0 Then
strIPAddr = Request.ServerVariables( "REMOTE_ADDR ")
ElseIf InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "), ", ") > 0 Then
strIPAddr = Mid(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "), 1, InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "), ", ")-1)
ElseIf InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "), "; ") > 0 Then
strIPAddr = Mid(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "), 1, InStr(Request.ServerVariables( "HTTP_X_FORWARDED_FOR "), "; ")-1)
Else
strIPAddr = Request.ServerVariables( "HTTP_X_FORWARDED_FOR ")
End If
getIP = Trim(Mid(strIPAddr, 1, 30))
End Function

Function cacuIp(user_IP)
On Error Resume Next
Dim srIp, aIp
srIp=0
aIp = Split(user_IP, ". ")
If UBound(aIP) <> 3 Then
cacuIP=0
Exit Function
End If
For i=0 To 3
srIp=srIp+(CInt(aIP(i))*(256^(3-i)))
Next
cacuIp=srIp-1
If Err Then cacuIp=0
End Function

function ipznum(ip)
dim uip
dim i,p,k
uip=split(ip, ". ")
ipznum=0
for i=0 to ubound(uip)
p=1
for k=1 to 3-i
p=p*256
next
ipznum=ipznum + p*uip(i)
next
end function



function cip(sip)
tip=cstr(sip)
sip1=left(tip,cint(instr(tip, ". ")-1))
tip=mid(tip,cint(instr(tip, ". ")+1))
sip2=left(tip,cint(instr(tip, ". ")-1))
tip=mid(tip,cint(instr(tip, ". ")+1))
sip3=left(tip,cint(instr(tip, ". ")-1))
sip4=mid(tip,cint(instr(tip, ". ")+1))
cip=cint(sip1)*256*256*256+cint(sip2)*256*256+cint(sip3)*256+cint(sip4)
end function

function isForbid(sip)
dim Iplist,Iparr,Ipi
Iplist = "| "& IpLists & "| "
Iparr = split(Iplist, "| ")
for Ipi = 0 to ubound(Iparr)
if len(Iparr(Ipi)) > 0 and instr( "| " & sip, "| " & Iparr(Ipi)) > 0 then
isForbid = true
exit function
end if
next
isForbid = false
end function

Set CONN=Server.CreateObject( "ADODB.Connection ")
conn.Open "DRIVER={Microsoft Access Driver (*.mdb)};DBQ= "&Server.Mappath( "IPdate.mdb ")
iIp=cacuIp(user_IP)
SQL = "SELECT province,city FROM [ipdate] WHERE startip <= " & iIp & " AND finiship> = " & iIp
Set rsCnt = CONN.Execute ( SQL )

If rsCnt.Eof Then
sPlace= "查无记录 "
Else
sPlace=rsCnt(0)& " "&rsCnt(1)
End If

Set rsCnt=Nothing

Response.Write ipznum(user_IP)& " <br> "

if isForbid(user_IP) then
Response.write "IP: "&user_IP & "是内部地址 "
else
Response.Write "你查询的IP所在地为: " & sPlace
end if
%>
<p> IP地址归属地查询 <br>

<form method= "post " action= "ip.asp " name= "form1 " >
请输入IP: <input maxLength= "20 " type= "text " size= "20 " name= "user_ip " ip= "user_ip "> <br>
<input type=submit maxLength= "20 " name=submit value= "查询 ">
</form>
数据库(可到网上找):
id startip finiship province city startip1 finiship1
1 33996344 33996351 英国 2.6.190.56 2.6.190.63

[解决办法]
冲着一身相许来的....
阿江统计:
功能介绍:http://www.ajstat.com/trait.htm
截图: http://www.ajstat.com/gras.htm
演示: http://www.ajiang.net/mystat
下载: http://www.downweb.cn/Soft/down.asp?softid=9961 (这东东是要钱的,网上的免费的,找了一个给你,确定可以下载)

挺全的,根据你的要求去看代码...
[解决办法]
半夜睡不着就起来写一下了
stat.asp 内容:
'================
<%
dim tmp, pagename
pagename = "stat.asp " '统计页的名字 这里一定要写成本页的名字


tmp = "http:// " & Request.ServerVariables( "http_host ") & finddir(Request.ServerVariables( "url ")) & pagename

if request( "action ") <> "stat " then
%>
document.write( " <scr " + "ipt type= 'text/javascript ' src= <%=tmp%> ?action=stat&sw= " + screen.width + "&sh= " + screen.height + "&com= " + escape(document.referrer) + "> </scr " + "ipt> ");
<%
else
Response.Expires = 0
Dim com, thesoft, vsoft, vOS, ip

tmp = "被访页面: " & Request.ServerVariables( "HTTP_REFERER ") & " <br> "
com = Request( "com ")
if com = " " then com = "直接输入地址或收藏夹访问 "
tmp = tmp & "来路: " & com


tmp = tmp & " <br> 访问时间: " & now()
ip = Request.ServerVariables( "Remote_Addr ")
tmp = tmp & " <br> IP: " & ip

'获取访问者地区是从 ip.cn 上截取的数据,如果自己有IP库,可自己改成查数据库
Dim getAddress
getAddress = getHTTPPage( "http://ip.cn/ip.php?q=3 " + ip)
getAddress = Split(getAddress, "珊瑚虫精简版 ")(1)
getAddress = Split(getAddress, " <font color=red> ")(1)
getAddress = Split(getAddress, " </font> ")(0)
tmp = tmp & " <br> 访问者地区: " & getAddress

thesoft = Request.ServerVariables( "HTTP_USER_AGENT ")

if instr(thesoft, "NetCaptor ") then
vsoft= "NetCaptor "
elseif instr(thesoft, "MSIE 6 ") then
vsoft= "MSIE 6.x "
elseif instr(thesoft, "MSIE 7 ") then
vsoft= "MSIE 7.x "
elseif instr(thesoft, "MSIE 5 ") then
vsoft= "MSIE 5.x "
elseif instr(thesoft, "MSIE 4 ") then
vsoft= "MSIE 4.x "
elseif instr(thesoft, "Netscape ") then
vsoft= "Netscape "
elseif instr(thesoft, "Opera ") then
vsoft= "Opera "
else
vsoft= "Other "
end if
tmp = tmp & " <br> 浏览器: " & vsoft

if instr(thesoft, "Windows NT 5.0 ") then
vOS= "Win 2000 "
elseif instr(thesoft, "Windows NT 5.1 ") then
vOs= "Win XP "
elseif instr(thesoft, "Windows NT ") then
vOs= "Win NT "
elseif instr(thesoft, "Windows 9 ") then
vOs= "Win 9x "
elseif instr(thesoft, "unix ") or instr(thesoft, "linux ") or instr(thesoft, "SunOS ") or instr(thesoft, "BSD ") then
vOs= "类Unix "
elseif instr(thesoft, "Mac ") then
vOs= "Mac "
else
vOs= "Other "
end if
tmp = tmp & " <br> 操作系统: " & vOS & " <br> "
tmp = tmp & "屏宽: " & request( "sw ") & " <br> "
tmp = tmp & "屏高: " & request( "sh ") & " <br> "

response.write "document.write( " " " + tmp + " " "); "
end if

Function finddir(filepath)
finddir= " "
for i=1 to len(filepath)
if left(right(filepath,i),1)= "/ " or left(right(filepath,i),1)= "\ " then
abc=i
exit for
end if
next
if abc <> 1 then
finddir=left(filepath,len(filepath)-abc+1)
end if
end Function

function getHTTPPage(turl)
dim myhttp
set myhttp=server.createobject( "MSXML2.XMLHTTP ")
myhttp.open "GET ",turl,false
myhttp.send()
if myhttp.readystate <> 4 then
exit function
end if
getHTTPPage=bytesToBSTR(myhttp.responseBody, "GB2312 ")
set myhttp=nothing
if err.number <> 0 then err.Clear
end function

Function BytesToBstr(body,Cset)
dim objstream


set objstream = Server.CreateObject( "adodb.stream ")
objstream.Type = 1
objstream.Mode =3
objstream.Open
objstream.Write body
objstream.Position = 0
objstream.Type = 2
objstream.Charset = Cset
BytesToBstr = objstream.ReadText
objstream.Close
set objstream = nothing
End Function
%>

在需要的页面加入
<script type= "text/javascript " src= "http;//.../stat.asp "> </script>
[解决办法]
呵呵,好多都是冲着以身相许来的啊!
连她长着什么样都不知道,真是一群狼.

女孩当然可以做程序了,只不过做程序这行,太辛苦,女孩子一般都受不了.
支持一下!

检查这些信息,我记得应该有JS脚本可以完成!
[解决办法]
1.网上可以下载到ip数据库,你上网下一个.
2.没办法.
3.用js,取最大化窗口.
4.Dim objBC
Set objBC=Server.CreateObject( "MSWC.BrowserType ")
服务器软件的版本: <%= Request.ServerVariables( "server_software ") %>
用户浏览器的名称: <% = objBC.Browser %>

热点排行