Om man har en hemsida så kan man ju kolla ipnummer, webbläsare osv som besökarna har/använder. Finns det möjlighet att få fram med vilket internetbolag personen surfar med ?
du tar ip adressen, går till en whois tjänst anger den å får därmed besökaren ISP (för det mesta iaf)
Om det finns nån funktion/komponent för detta vet jag inte, men det kanske går att göra själv?
Ta besökarens IP-adress, skapa en uppkoppling mot whois.ripe.net (för europeiska IP-adresser), whois.arin.net (för amerikanska dito) eller whois.apnic.net (för asien mfl) på port 43.
Skicka in IP-adressen, du får tillbaka ett svar med data om vem som är registrant för IP-adressen.
Ur detta data kan du (oftast) plocka fram namnet på bolaget som står som registrant av IP-adressen, när det gäller RIPE så skall du leta efter första raden som börjar med descr:, när det gäller ARIN så är det raden som börjar med OrgName:.
Exempel på data från RIPE (webforums IP):
% This is the RIPE Whois server.
% The objects are in RPSL format.
%
% Rights restricted by copyright.
% See [url]http://www.ripe.net/ripencc/pub-services/db/copyright.html[/url]
inetnum: 193.13.72.0 - 193.13.74.255
netname: SE-GRIFFEL-NET1
[b]descr: Griffel Data AB [blue]<-- denna rad[/blue][/b]
####################################
In case of improper use, please mail
or
####################################
country: SE
admin-c: JB72-RIPE
tech-c: JB72-RIPE
status: ASSIGNED PA
mnt-by: SWIPNET-LIR-MNT
mnt-lower: SWIPNET-LIR-MNT
mnt-routes: AS1257-MNT
changed: [email]ip@swip.net[/email] 20000322
changed: [email]ip@swip.net[/email] 20020419
changed: [email]ip@swip.net[/email] 20030114
source: RIPE
route: 193.12.0.0/14
descr: SWIPNET
###################################################
In case of improper use originating from our network,
please mail customer or
###################################################
origin: AS1257
notify: [email]staff@swip.net[/email]
mnt-by: AS1257-MNT
changed: [email]lowis@swip.net[/email] 19950703
changed: [email]per@swip.net[/email] 20001115
changed: [email]per@swip.net[/email] 20020125
changed: [email]calle@swip.net[/email] 20020909
source: RIPE
person: Jonas Bjornlund
address: Griffel Data
address: Box 437
address: S-351 06 VAXJO
address: SWEDEN
phone: +46 470 723040
fax-no: +46 470 723050
e-mail: [email]jonas@griffel.se[/email]
nic-hdl: JB72-RIPE
changed: [email]lotta@tip.net[/email] 19950918
changed: [email]ip@swip.net[/email] 20000322
source: RIPE
Och så hoppas man att sgtpepper är snäll och låter en göra det. ;)
Självklart, det är bara kul om det man gjort används :). Jag skall nog förresten ta och slänga ihop en funktion som tar en IP-adress och som returnerar ett XML-resultat med intressant info (bl.a företagsnamn) som man kan anropa med t.ex XMLHTTP.
Följande skript returnerar (vis sökning på webforums IPnummer):
Net number = 193.13.72.0 - 193.13.74.255
Net name = SE-GRIFFEL-NET1
Net Description = Griffel Data AB
Net Country = SE
Net Email = jonas@griffel.se
<%
sSearchOnIp = Request.Form("req_ip_number")
%>
<% if sSearchOnIp <> "" then
subSearchRipe
end if %>
<%=sSearchOnIp%>
<% sub subSearchRipe %>
<%' REGEXP AV MATTIAS NORDIN
' FÖRSÖKER HÄMTA EN DEL AV INNEHÅLLET PÅ EN ANNAN WEBSIDA. I DETTA FALL [url]http://www.wundersolutions.com/web-hosting/WHOIS/?Domain=81.216.207.135[/url]
myUrl = "http://www.wundersolutions.com/web-hosting/WHOIS/?Domain=" &sSearchOnIp
Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")
objHTTP.Open "GET", myUrl, False ' Hämtar hela websidan. VAD GÖR FALSE ???
objHTTP.Send
strHTML=objHTTP.responseText ' GÖR EN STRÄNG AV HELA SIDANS SOURCE
Set regExp = New regexp
regExp.Global = false ' True visar alla. False visar första träffen.
regExp.IgnoreCase = true ' Bryr sig inte om gemaner/versaler
regExp.Pattern = "inetnum:(.*?)\n" ' Letar efter nätet
Set hittade = regExp.Execute(strHTML)
For each item in hittade
'Response.Write(item.value)
varNetNumber = right(item.value,len(item.value)-9)
Next%>
<% regExp.Pattern = "netname:(.*?)\n" ' Letar efter nätets namn
Set hittade = regExp.Execute(strHTML)
For each item in hittade
'Response.Write(item.value)
varNetName = right(item.value,len(item.value)-9)
Next%>
<% regExp.Pattern = "descr:(.*?)\n" ' Letar efter nätets namn
Set hittade = regExp.Execute(strHTML)
For each item in hittade
'Response.Write(item.value)
varNetDescription = right(item.value,len(item.value)-9)
Next%>
<% regExp.Pattern = "country:(.*?)\n" ' Letar efter nätets namn
Set hittade = regExp.Execute(strHTML)
For each item in hittade
'Response.Write(item.value)
varNetCountry = right(item.value,len(item.value)-9)
Next%>
<% regExp.Pattern = "e-mail:(.*?)\n" ' Letar efter nätets namn
Set hittade = regExp.Execute(strHTML)
For each item in hittade
'Response.Write(item.value)
varEmail = right(item.value,len(item.value)-9)
Next%>
<p>Using the [url]www.ripe.net[/url] database...
<p>
<table cellspacing=10>
<tr><td>Net number = </td><td><%=varNetNumber%></td></tr>
<tr><td>Net name = </td><td><%=varNetName%></td></tr>
<tr><td>Net Description = </td><td><%=varNetDescription%></td></tr>
<tr><td>Net Country = </td><td><%=varNetCountry%></td></tr>
<tr><td>Net Email = </td><td><%=varEmail%></td></tr>
</table>
<% end sub %>
<p>
<form method=POST action="ip_lookup_via_ripe.asp" name="lookup">
<input type="text" value="" name="req_ip_number">
<input type="submit" value="Lookup ipnumber">
</form>
Annars hittade jag ASP-kod som anropar nslookup i operativsystemet... Eller vad man nu skall säga... Den fungerar i alla fall klockrent!! fast det är bara rDNS som hämtas. De andra grejorna får man använda XML.Http till som i ditt förslag...
Förresten, vilka databaser söker den igenom? Alla? Tillåter de att man skriver script på detta sättet? Jag hittade i alla fall inga texter om det :P
Mitt script kräver den del grejor av servern. Läs mer här där jag fick kod och idéer ifrån...
<%@LANGUAGE="VBSCRIPT" CODEPAGE="1252"%>
<%
'----- Hämtar Reverse DNS
Function NSLookup(strHost)
'----- Skapar Shell-objekt
Set oShell = Server.CreateObject("Wscript.Shell")
'----- Kör NSLookup via Commando Prompten
'----- Fråga om adressen och spara i en textfil
oShell.Run "%ComSpec% /c nslookup " & strHost & ">C:\tempfil.txt",0,true
'----- Öppna den tillfälliga textfilen och läs datan
Set oFS = Server.CreateObject("Scripting.FileSystemObject")
Set oTF = oFS.OpenTextFile("C:\tempfil.txt")
'----- Initierar variablar
strMatch = Null
Data = Null
'----- Läser datan
Data = Trim(oTF.ReadAll)
'----- Letar efter rDNS-adressen
With New RegExp
.IgnoreCase = True
.Global = False
.Pattern = "Name:[^\n]+"
For Each Match In .Execute(Data)
'----- Hämtar matchningen och tar bort onödiga tecken
strMatch = Trim(Mid(Match.Value, 6))
strMatch = Left(strMatch, Len(strMatch)-1)
Next
End With
'----- Kontrollerar om det var rDNS adressen som eftersöktes
'----- eller om man vill slå upp IP adressen från en RDNS-adress
If strMatch = strHost Then
'----- Letar efter IP-adressen
With New RegExp
.IgnoreCase = True
.Global = True '----- Tar den sista adressen
.Pattern = "Address:[^\n]+"
For Each Match In .Execute(Data)
'----- Hämtar matchningen och tar bort onödiga tecken
strMatch = Trim(Mid(Match.Value, 9))
strMatch = Left(strMatch, Len(strMatch)-1)
Next
End With
End If
'----- Stäng textfilen
oTF.Close
'----- Radera textfilen
oFS.DeleteFile "C:\tempfil.txt"
'----- Stäng alla objekt
Set oFS = Nothing
Set oTF = Nothing
If IsNull(strMatch) = False Then
NSLookup = strMatch
Else
NSLookup = "Felaktig IP - <i>Kunde inte läsa rDNS för " & strHost & "</i>"
End If
End Function
%>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>rDNS by Christoffer Lilja</title>
</head>
<body style="font-family:'Courier New', Courier, mono; ">
<%
strRadbrytningar = "<br>" & vbCrLf & "<br>" & vbCrLf
strEnkelradbrytning = "<br>" & vbCrLf
'----- En IP-adress
Response.Write("<b>IP -> rDNS</b><br>" & vbCrLf)
strHost = Request.ServerVariables("REMOTE_ADDR")
strRDNS = NSLookup(strHost)
Response.Write(strRDNS & strRadbrytningar)
'----- En rDNS-adress (från förra IP-adressen
Response.Write("<b>rDNS -> IP</b><br>" & vbCrLf)
strHost = "www.webforum.nu"
strRDNS = NSLookup(strRDNS)
Response.Write(strRDNS & strRadbrytningar)
'----- Ett domännamn
Response.Write("<b>Domännamn -> rDNS</b><br>" & vbCrLf)
strHost = "www.webforum.nu"
strRDNS = NSLookup(strHost)
Response.Write(strRDNS & strRadbrytningar)
'----- En IP från en rDNS
Response.Write("<b>rDNS -> IP</b><br>" & vbCrLf)
strHost = "wf1.webforum.nu"
strRDNS = NSLookup(strHost)
Response.Write(strRDNS & strRadbrytningar)
'----- En URL från en IP
Response.Write("<b>IP -> URL</b><br>" & vbCrLf)
strHost = "193.13.74.84"
strRDNS = NSLookup(strHost)
Response.Write(strRDNS & strRadbrytningar)
'----- Felaktig adress
Response.Write("<b>Felaktig adress</b><br>" & vbCrLf)
strHost = "81.231.999.999"
strRDNS = NSLookup(strHost)
Response.Write(strRDNS & strRadbrytningar)
%>
</body>
</html>
495 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e