Avatar billede mortency Nybegynder
18. februar 2005 - 14:17 Der er 7 kommentarer og
1 løsning

Hente info(firma/eier/ISP) på IP adresse

Jeg har et script som logg fører statistikk.

Det jeg er interessert i er en snutt som sjekker ip mot en database eller nettsted som finner hvilket firma som har ip`en.

Jeg fant et script på http://www.eksperten.dk/spm/589988 men problemet er at når jeg sjekker mot arin med dette scriptet så klarer den ikke å sjekke flere en 2 ip om gangen.

Her er scriptet:
<%
IP = Request.ServerVariables("REMOTE_ADDR")

Sub GetIPName(strInput)
    Dim oServerXMLHTTPRequest,URL,Kilde,Arr_Kilde,Arr_ISP,ISP
    Set oServerXMLHTTPRequest = Server.CreateObject("Msxml2.ServerXMLHTTP")
    URL = "http://www.ripe.net/perl/whois?form_type=simple&full_query_string=&searchtext=" & strInput & "&do_search=Search"
    oServerXMLHTTPRequest.open "GET", URL, False
    oServerXMLHTTPRequest.Send
    Kilde = LCase(oServerXMLHTTPRequest.ResponseText)

    Arr_Kilde = Split(Kilde, "descr:        ")
    Arr_ISP = Split(Arr_Kilde(1), "country")
    ISP = Arr_ISP(0)
   
    If Len(ISP) > 35 Then
        ISP = strInput
    End if
   
    Response.Write(UCASE(ISP))
End Sub

Call GetIPName("85.164.215.84")
Response.Write("<br>")

Call GetIPName("192.168.1.72")
Response.Write("<br>")

Call GetIPName("80.203.227.164")
Response.Write("<br>")
%>

Hvis man kjører fler etter hver andre så kommer feilmeldingen:
Subscript out of range: '[number: 1]'
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:01 #1
Jeg har kigget på dette script før.. der er en "fejl" i scriptet.

Fejlen (som du også får, "Subscript out of range: '[number: 1]'") findes her:

Arr_ISP = Split(Arr_Kilde(1), "country")

Denne del: Arr_Kilde(1)

Scriptet går ud fra, at der står MINDST (!) 2x "descr:        " på siden, som sendes tilbage.

Det er ikke altid, at det står der 2x gange, og derfor får du fejlen.

Test dine ip'er hver for sig. Jeg tror at "192.168.1.72" = 1x "descr", eller "80.203.227.164" = 1x "descr".
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:05 #2
Hmm.. har lige testet alle 3 ip'er.. de har alle mindst 2x "descr"..
Men, det er det der er problemet :-)
Avatar billede thesurfer Nybegynder
18. februar 2005 - 22:08 #3
En lille test.. som ikke er testet :-)

Få koden til at se sådan ud:

dim myIndex
myIndex = 0 ' nulstil

    Arr_Kilde = Split(Kilde, "descr:        ")
    myIndex = UBound(Arr_Kilde)
    if myIndex > 1 then myIndex = 1
    Arr_ISP = Split(Arr_Kilde(myIndex), "country")

Hvad sker der så?
Avatar billede mortency Nybegynder
21. februar 2005 - 10:24 #4
Hei!

Jeg får kun fortsatt sjekket 1 ip. så får jeg svaret her når jeg sjekker flere ip`er.

Resource Temporarily Unavailable
Your access to the whois web interface has been temporarily denied due to excessive query behaviour. Please try again in a short while.
The most likely reason for this is that you are doing scripted queries for data. If this is the case, please use directly the whois query interface and protocol on port 43 of whois.ripe.net instead.

Please contact webmaster@ripe.net with queries about this policy, or if you think access has been denied inappropriately
Avatar billede thesurfer Nybegynder
22. februar 2005 - 18:26 #5
Der er et eller andet i scriptet, der "sidder fast" og derved loader "for meget" / skaber "overload" på deres server..

Du skal huske at lukke forbindelse, og frigør hukommelsen:

...
Kilde = LCase(oServerXMLHTTPRequest.ResponseText)
oServerXMLHTTPRequest.close
set oServerXMLHTTPRequest = nothing
...
Avatar billede mortency Nybegynder
06. april 2005 - 16:01 #6
Post et svar
Avatar billede thesurfer Nybegynder
07. april 2005 - 13:45 #7
Svar posted.. :-)
Avatar billede thesurfer Nybegynder
07. april 2005 - 13:52 #8
Takker for points :-)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester