webForumDet fria alternativet

objHTTP.Open med relativ sökväg

ASP

24 svar · 1 155 visningar · startad av Calevan

Medlem sedan maj 20031 173 inlägg
Frågan#1

Hej!

Har en sida (default) som inkluderar en sida med funktioner (includes/funk.asp) där en av funktionerna innehåller dessa två rader:

url = "http://***.***.***.***/whois.asp?Domain=" & strIP & ""
objHTTP.Open "GET", url, False (rad 83)

nu vill jag byta från den absoluta sökvägen till en relativ sökväg och tog därför bort "http://217.28.195.189/". Får då endast detta felmedelande:

error '80004005'
/includes/funk.asp, line 83

Får samma medelande om jag skriver ../whois osv. Hur ska jag skriva egentligen?

tack!

Medlem sedan maj 200010 687 inlägg
#2

Du måste ha en full URL.
Vettigast är också om du kan plocka filen via en LAN-ipadress så din request inte behöver ta en runda utanför nätverket...

Medlem sedan maj 20031 173 inlägg
#3

Jag kollade på w3schools där jag läste detta:

open("method","URL",async,"uname","pswd")

"The URL parameter may be either a relative or complete URL."

så då antog jag att det gick att ha en relativ sökväg, men det går altså inte?

vad menas med en LAN-ip adress? det verkar vettigt, men jag förstår inte riktigt vad jag ska ändra.

tack!

Medlem sedan maj 20031 173 inlägg
#4

Ingen som tror att de kan förklara lite mer?

tack!

Medlem sedan maj 20031 173 inlägg
#5

jag lyckas sänka hela min webserver med denna kod, så jag vore mycket tacksam om någon visste något... tack!

Medlem sedan dec. 19996 721 inlägg
#6

Client-side eller ASP? Vilket forum ska vi flytta till? :)

Medlem sedan maj 20031 173 inlägg
#7

altså, jag använder asp, men det är väl XML det är frågan om här?

hm. såg precis att det fanns ett XML forum, så jag har ju garanterat postat detta fel då :)

Medlem sedan dec. 19996 721 inlägg
#8

Calevan skrev:

altså, jag använder asp, men det är väl XML det är frågan om här?

Njae, det vill jag nog inte påstå... Det är ju inte XML du har problem med, utan en sökväg.

Med hjälp av Request.ServerVariables("SERVER_NAME") och Request.ServerVariables("URL") kan du skapa den URL du vill ha.

/G

Medlem sedan maj 20031 173 inlägg
#9

Altså, jag kan ju använda en adress så som i översta posten, men ville helst ha en relativ sökväg, så att man lättare kan flytta sidan utan att det blir problem. Men sen sa Erik att jag skulle ha en LAN-ipadress. Så det du nu gav mig tips om, är det för att lösa problem ett, dvs att det funkar oavsett var sidan ligger eller ger det en LAN-ipadress också (vad det nu är)?

tack!

Medlem sedan dec. 19996 721 inlägg
#10

Det var för att lösa problem 1.

Med LAN-IP-adress menade Erik att du skulle kunna använda den lokala IP-adressen (dvs. den adress som är inställd i nätverksinställningarna) för servern, i stället för den publika, och på så sätt slippa ett eller flera hopp i nätverket. Hur mycket man vinner på det är svårt att säga, och det är inte ens säkert att du har en lokal IP-adress.

Medlem sedan maj 200010 687 inlägg
#11

Tråden flyttas från HTML, XHTML & CSS till ASP.

Medlem sedan maj 20031 173 inlägg
#12

Ändrade till den IP adressen som fanns i nätverksinställningarna, men det fungerade inte. Så här är situationen nu:

I normala fall har jag denna raden på min default.asp sida:

strVarifran = hamtaISP(strIP)

men av någon anledning som jag inte vet, men försökt lista ut nedan, så hänger sig laddningen och den bara står och tuggar. vet inte varför. Har försökt att testa det:

Jag har en kod med funktionen hamtaISP där jag anropar min whois sida:

<%
Function hamtaISP(strIP)
 Dim objHTTP
 Dim strHTML
 Dim strMatch
 Dim x
 Dim url

 Set objHTTP = Server.CreateObject("Microsoft.XMLHTTP")

 url = "http://***.***.***.***/whois.asp?Domain=" & strIP & ""

 objHTTP.Open "GET", url, False
 objHTTP.Send

 strHTML = objHTTP.ResponseText
 Set objHTTP = Nothing

 With New RegExp
  .IgnoreCase = True
  .Global = False
  .Pattern = "descr:[^\n]+"

 For Each x In .Execute(strHTML)
  strMatch = Trim(Mid(x, 7))
  Next
 End With

 hamtaISP = strMatch
End Function

 strIP = Request.ServerVariables("REMOTE_ADDR")

 response.write hamtaISP(strIP) 
%>

den funkar bra, kan även här skriva sista raden många gånger och det fungerar.

byter jag ut de två sista raderna där och gör såhär istället:


Set Connect = Server.CreateObject("ADODB.Connection")
Connection()

 strSQL = "SELECT * FROM tblStatistikBesokare WHERE ID > 60 AND ID < 71"
 Set RecSet = Connect.Execute(strSQL)
 
 Do Until RecSet.EOF
 
  rsID = RecSet("ID")
  rsVarifran = RecSet("Varifran")

  strIP = rsVarifran
 response.write rsID & "<br>"
 response.write hamtaISP(strIP)  & "<br>"
 RecSet.MoveNext
 Loop

%>

så fungerar inget alls, sidan bara står och tuggar och laddar inte in något. (SQL satsen ger 10 rader som svar).

Min whois.asp sida som fungerar utmärkt:

 <%@ LANGUAGE="JavaScript" %> <%

socket = Server.CreateObject( "Socket.TCP" );

function whois( Domain, Server )
{

%><a href="http://www.<%= Domain%>"> <font face="Verdana" size=5><b> <%= Domain%></b></font></a>
<%
// Whois port is 43
socket.Host = Server + ":43";
socket.Open();

// Send the query....
socket.SendLine(Domain);

// Wait for disconnect and output the buffer
socket.WaitForDisconnect();

Response.Write( "<blockquote><pre>" + socket.Buffer + "</pre></blockquote>" );
socket.Close();

}

%>

<html>
<body bgcolor="#FFFFFF" text="#000010" link="#0000C0" vlink="#000040" alink="#000040">
<%

var DomainName;
DomainName = Request.QueryString( "Domain" ).item;
%>

<% whois( DomainName, "whois.ripe.net" ) %>

Jag har prövat att ta sista raden och skriva den 20 gånger och det fungerar fint => det går altså bra att skicka många requests till ripe.net's whois sida.

Jag vet inte alls vad som är felet, men jag hade hoppats på att kunna skriva en relativ sökväg till whois.asp sidan för att tjäna lite, men det verkar inte gå.

någon som orkat läsa allt detta och har någon bra ide?

Medlem sedan dec. 19996 721 inlägg
#13

Ok, då förstår jag vad du är ute efter. :)

1. Det finns inget att tjäna på att använda en relativ sökväg. Den måste ju ändå först omvandlas till en absolut sökväg innan man kan göra något med den.
2. Varför har du en egen sida som du anropar via HTTP? Du har ju redan en fungerande whois-funktion. Varför inte använda den i din hamtaISP-funktion?

Medlem sedan maj 20031 173 inlägg
#14

1. ok, tack!
2. när jag kör en whois fråga via min whois sida så får jag ju en lång text som svar och jag vill ju bara ha en rad i hela den sidan som genereras. kan jag få ut den texten på något annat sätt så vore det kanon om du kan berätta hur! jag vill jättegärna slippa HTTP anropet, men vet inte hur.

TACK!

Medlem sedan dec. 19996 721 inlägg
#15

Calevan skrev:

2. när jag kör en whois fråga via min whois sida så får jag ju en lång text som svar och jag vill ju bara ha en rad i hela den sidan som genereras. kan jag få ut den texten på något annat sätt så vore det kanon om du kan berätta hur! jag vill jättegärna slippa HTTP anropet, men vet inte hur.

Du har redan byggt den funktionen själv, så det ska inte vara något problem.

<%
Function hamtaISP(strIP)
 Dim socket, x, strMatch
 set socket = Server.CreateObject("Socket.TCP")
 socket.Host = "whois.ripe.net:43"
socket.Open()

// Send the query....
socket.SendLine(strIP)

// Wait for disconnect and output the buffer
socket.WaitForDisconnect()
 With New RegExp
  .IgnoreCase = True
  .Global = False
  .Pattern = "descr:[^\n]+"

 For Each x In .Execute(socket.buffer)
  strMatch = Trim(Mid(x, 7))
  Next
 End With

 socket.Close

 hamtaISP = strMatch
End Function

 strIP = Request.ServerVariables("REMOTE_ADDR")

 response.write hamtaISP(strIP) 

%>
Medlem sedan maj 20031 173 inlägg
#16

grymt bra!

tack så väldigt mycket för hjälpen, blev kanonbra, och funkar kanonbra! toppen helt enkelt! :bire

tack!

Medlem sedan apr. 20031 660 inlägg
#17

HEJ!

Jo, jag håller med, det fungerade utmärkt!

Tills i natt, då vill inte Function hamtaISP(strIP) i inlägget http://www.webforum.nu/showthread.php?p=1087748#post1087748 hänga med längre!
Skrev ut strHTML som visade att den sidan inte finns längre.

Bytte då till http://www.ripe.net/perl/whois? som inte heller ger något, den postar inte sidan.
Hårdkodar man in ett ip, ger det dock resultat.

Vad är det som har ändrats, och hur ska jag lösa det?

Upplys mig också om vad funktionen i inlägget ovan med Socket.TCP gör som inte den första gör.
(Den fungerar inte, saknar komponenten. Lite förbryllad, ni skriver inte om komponenter tidigare?)

Medlem sedan dec. 19996 721 inlägg
#18

Mha Socket.TCP gör vi ett riktigt whois-anrop mot ripe, i stället för att försöka snylta på deras webbsida.

http://www.webforum.nu/showthread.php?t=96062&highlight=whois

Medlem sedan apr. 20031 660 inlägg
#19

HEJ!

Gissade att det var en komponent som skulle installeras.

Finns det någon anledning till att den andra koden har lagt av?
Tycker det är konstigt att det fungerar om man sätter en ip-adress, men inte om man lägger det i en variabel.

url = "http://www.ripe.net/perl/whois?=" & strIP
url = "http://www.ripe.net/perl/whois?217.28.195.189"

Medlem sedan dec. 19996 721 inlägg
#20

I det ena exemplet har du med ett likamed-tecken...

267 ms totalt · 4 externa anrop · v20260731065814-full.a51de22e
123 ms — deklarationer (db)
0 ms — hämta statistik (cache)
135 ms — hämta tråd, inlägg och bilagor (db)
129 ms — ändringar (db)