M Method Medlem sedan apr. 2001 357 inlägg Trådstart 16 dec. 2001 16:13 #1 Istället för att försöka förklara mitt önskemål ger jag ett exempel med en gång.
Om jag exempelvis har textsträngen "h218n2fls31o920.telia.com " vill jag ta bort det som är innan första punkten i strängen. DVS i detta fallet "h218n2fls31o920." och sedan spara "telia.com " till databasen.
Skall vara till en besöksräknare om någon redan har en färdig funktion för detta mottas denna med tacksamhet.
S SPiN Medlem sedan mars 2000 7 896 inlägg Function CutIt ( ByVal strHost )
Dim arrHost, strResult
arrHost = Split ( strHost, "." )
strResult = arrHost ( 1 ) & "." & arrHost ( 2 )
CutIt = strResult
End Function
Man kan ju göra på flera sätt, t.ex. ta ut positionen för första punkten och räkna efter den.
M Method Medlem sedan apr. 2001 357 inlägg Får det inte att funka riktigt.
Har följande kod som jag ska använda:
sub get20
Dim DNS
Dim A
Set DNS = Server.CreateObject("ASPDNS.DNSLookup")
strSQL = "Select top 60 dtm, ip, klient, referer from logg order by dtm desc"
set objRs = objConn.execute(strSQL)
response.write "<table border='1' cellspacing='0' cellpadding='1'><tr><td class='text'><b>Datum</b></td>" &_
"<td class='text'><b>Ipnummer</b></td><td class='text'><b>Klientinfo</b></td><td class='text'><b>Kom ifrån...</b></td></tr>"
do until objRs.eof
A = DNS.GetNameFromIP( objRs( "ip" ) )
response.write "<tr><td class='smal_text'>" & formatdatetime( objRs( "dtm" ), 0) & "</td><td class='smal_text'><a href=http://" & objRs( "ip" ) &_
">" & objRs( "ip" ) &"</a></td><td class='smal_text'>"& A &"</td><td class='smal_text'>" & objRs( "klient" ) & "</td><td class='smal_text'><a href=" & objRs( "referer" ) & " target=blank>" & objRs( "referer" ) & "</a> </td></tr>"
objRs.movenext
loop
response.write "</table>"
set objRs = nothing
end sub
Set DNS = Nothing
Brimba Medlem sedan dec. 1999 5 874 inlägg Kan det vara såhär du menar?
sub get20
Dim DNS
Dim A
Set DNS = Server.CreateObject("ASPDNS.DNSLookup")
strSQL = "Select top 60 dtm, ip, klient, referer from logg order by dtm desc"
set objRs = objConn.execute(strSQL)
response.write "<table border='1' cellspacing='0' cellpadding='1'><tr><td class='text'><b>Datum</b></td>" &_
"<td class='text'><b>Ipnummer</b></td><td class='text'><b>Klientinfo</b></td><td class='text'><b>Kom ifrån...</b></td></tr>"
do until objRs.eof
CutIt(A) = DNS.GetNameFromIP( objRs( "ip" ) )
response.write "<tr><td class='smal_text'>" & formatdatetime( objRs( "dtm" ), 0) & "</td><td class='smal_text'><a href=http://" & objRs( "ip" ) &_
">" & objRs( "ip" ) &"</a></td><td class='smal_text'>"& A &"</td><td class='smal_text'>" & objRs( "klient" ) & "</td><td class='smal_text'><a href=" & objRs( "referer" ) & " target=blank>" & objRs( "referer" ) & "</a> </td></tr>"
objRs.movenext
loop
response.write "</table>"
set objRs = nothing
end sub
Set DNS = Nothing
S SPiN Medlem sedan mars 2000 7 896 inlägg Den här raden:
CutIt(A) = DNS.GetNameFromIP( objRs( "ip" ) )
Borde se ut så här:
A = CutIt ( DNS.GetNameFromIP ( objRs ( "ip" ) ) )
Brimba Medlem sedan dec. 1999 5 874 inlägg Såhär skall det alltså vara, med funktion inbakad och allt
Function CutIt ( ByVal strHost )
Dim arrHost, strResult
arrHost = Split ( strHost, "." )
strResult = arrHost ( 1 ) & "." & arrHost ( 2 )
CutIt = strResult
End Function
sub get20
Dim DNS
Dim A
Set DNS = Server.CreateObject("ASPDNS.DNSLookup")
strSQL = "Select top 60 dtm, ip, klient, referer from logg order by dtm desc"
set objRs = objConn.execute(strSQL)
response.write "<table border='1' cellspacing='0' cellpadding='1'><tr><td class='text'><b>Datum</b></td>" &_
"<td class='text'><b>Ipnummer</b></td><td class='text'><b>Klientinfo</b></td><td class='text'><b>Kom ifrån...</b></td></tr>"
do until objRs.eof
A = CutIt(DNS.GetNameFromIP( objRs( "ip" ) ))
response.write "<tr><td class='smal_text'>" & formatdatetime( objRs( "dtm" ), 0) & "</td><td class='smal_text'><a href=http://" & objRs( "ip" ) &_
">" & objRs( "ip" ) &"</a></td><td class='smal_text'>"& A &"</td><td class='smal_text'>" & objRs( "klient" ) & "</td><td class='smal_text'><a href=" & objRs( "referer" ) & " target=blank>" & objRs( "referer" ) & "</a> </td></tr>"
objRs.movenext
loop
response.write "</table>"
set objRs = nothing
end sub
Set DNS = Nothing
M Method Medlem sedan apr. 2001 357 inlägg OK jag vet inte vem som har rätt men kör jag Brimbas kod får jag följande fel
Microsoft VBScript runtime error '800a0009'
Subscript out of range: '[number: 1]'
/exclude/stats/Default.asp, line 16
Rad 16 är följande:
strResult = arrHost ( 1 ) & "." & arrHost ( 2 )
Brimba Medlem sedan dec. 1999 5 874 inlägg Ok, såhär är det.
På det objektet du får ut "h218n2fls31o920.telia.com ", skall du köra funktionen CutIt().
Nu gissade jag på att det var DNS.GetNameFromIP( objRs( "ip" ) ), men det kan mycket väl vara fel.
L LarsG Medlem sedan dec. 2000 12 464 inlägg Då ser det ut som om den sträng du skickar till funktionen inte innehåller några punkter.
Vad vill du ha tillbaka i det fallet?
Vad skall hända om strängen innehåller mer än 2 punkter?
M Method Medlem sedan apr. 2001 357 inlägg OK sorry mitt fel
Först har jag ip:t, sen gör jag en reverse lookup, då är det inte säkert att den hittar något domännamn och då skriver den en sträng utan punkter att det inte fanns ett domännamn.
På LarsG:s fråga den ska bara klippa tom första punkten
Exempel "www.sth.bdab.nu " skall bli "sth.bdab.nu "
Jag vet jag är lite jobbig
L LarsG Medlem sedan dec. 2000 12 464 inlägg Då är det väl enklast att skriva så här
Function CutIt ( ByVal strHost )
CutIt = mid(strHost,instr(strHost,".")+1)
End Function
och då är det knappt någon ide att göra en egen funktion av det.