Betenkt Skrevet 22. april 2009 Del Skrevet 22. april 2009 (endret) Har et par tjenester på hjemmeserveren min som bruker UDP-porter. Noen som har et flott lite script der jeg kan plotte inn IPer og porter? For TCP-tjenestene brukte jeg: <? //Connect to port 80 (HTTP) on ip $fp = @fsockopen("ip", port, $errno, $errstr); //If not connected, print out HTTP - Down if (!$fp) { print 'HTTP - Down'; //else print out HTTP - Up } else { print 'HTTP - Up'; }; //Close the connection! fclose ($fp); ?> Endret 27. april 2009 av Webmaster Esso Lenke til kommentar
Edorph Skrevet 23. april 2009 Del Skrevet 23. april 2009 Ser ut til at du kun trenger "udp://" foran ip/host, ellers helt likt, men har ikke prøvd selv. Off topic: Likte kommentaren før else-blokken.. Comments are evil :-) Lenke til kommentar
Martin A. Skrevet 23. april 2009 Del Skrevet 23. april 2009 Off topic: Likte kommentaren før else-blokken.. Comments are evil :-) Hva var så spesielt med den? Lenke til kommentar
Edorph Skrevet 24. april 2009 Del Skrevet 24. april 2009 Bare overflødigheten, den inneholder jo nesten ordrett det samme som koden. Nok om det. Lenke til kommentar
Betenkt Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 Ser ut til at du kun trenger "udp://" foran ip/host, ellers helt likt, men har ikke prøvd selv. Off topic: Likte kommentaren før else-blokken.. Comments are evil :-) Ok, takk. Da skal jeg prøve det. Lenke til kommentar
Betenkt Skrevet 26. april 2009 Forfatter Del Skrevet 26. april 2009 Når jeg legger til UDP:// foran ipen står det bare at tjenesten er oppe hele tiden :S Lenke til kommentar
Ernie Skrevet 26. april 2009 Del Skrevet 26. april 2009 Når jeg legger til UDP:// foran ipen står det bare at tjenesten er oppe hele tiden :S Nei, det var jo en bombe. UDP er helt minimalistisk og mer eller mindre «point and shoot», dvs. det er ingenting som sjekker om det faktisk er en tilkobling. Det eneste man gjør er å lage en pakke som man sender av sted. Å sikre seg at den kommer frem ansees som totalt bortkastet bruk av båndbredde. Veldig nyttig til f.eks streaming hvor det er poengløst å motta data som skulle vært der for flere sekunder siden, ikke fult så poengløst hvis man vil sjekke om en tjeneste er tilgjengelig (underforstått: man ønsker et svar på pakken man sender). Du har to muligheter her: 1. Sjekk om protokollen det er snakk om støtter ping-lignende forespørsler, eller 2. Koble deg til noe annet som kan gi status på tjenestene det er snakk om, f.eks ha en HTTP-server kjørende med et script som sjekker status på selve serveren. Lenke til kommentar
AlecTBM Skrevet 26. april 2009 Del Skrevet 26. april 2009 (endret) Hva slags tjenester er det? Finnes kanskje andre måter EDIT: Warning UDP sockets will sometimes appear to have opened without an error, even if the remote host is unreachable. The error will only become apparent when you read or write data to/from the socket. The reason for this is because UDP is a "connectionless" protocol, which means that the operating system does not try to establish a link for the socket until it actually needs to send or receive data. prøv å les noe fra streamen eller så hat du jo feof() Endret 26. april 2009 av AlecTBM Lenke til kommentar
Ernie Skrevet 26. april 2009 Del Skrevet 26. april 2009 (endret) Skrekk og gru så unøyaktig det utsagnet er. Du kan fint åpne og skrive via en UDP-«tilkobling» til en IP som ikke er i bruk (mao. uavhengig av portnr. skal resultatet være at ingenting er online) uten at du får en eneste feilmelding eller på noen andre måter veit status på noe som helst. Det er ganske enkelt et produkt av hva UDP er, det er så simpelt og enkelt man kan få det og man står selv ansvarlig for dataintegritet osv. Det som er stikkordet her er skriving OG lesing. Verdt å merke seg at ingen av delene vil gi noen svar hver for seg. Det nytter ikke å lese fra en server all den tid serveren ikke er klar over at du eksisterer, og det nytter ikke å skrive til serveren all den tid man ikke lytter etter et svar. Derimot, hvis man sender et eller annet på tilkoblingen og forventer et svar på det man sender, så finner man ganske kjapt ut status på hva det nå måtte være som lytter på den porten, men ingenting tilknyttet «resource»-en man får ut vil kunne gi noen som helst indikasjon på status, og det inkluderer feof. Som sagt, det er et produkt av hva UDP er. Endret 26. april 2009 av Ernie Lenke til kommentar
AlecTBM Skrevet 26. april 2009 Del Skrevet 26. april 2009 Men forventer ikke feof et svar på om det er slutt på sendinga? Er ikke helt inne på dette, men hvis man bruker en funksjon som sender og vil motta et signal så er man jo godt i gang, og etter det jeg har forstått så er det dette feof gjør Men som sagt så er jeg ikke helt inne på det. Og kort oppsumert om TCP vs UDP: TCP skal ha svar mens UDP driter i om den får svar Blir som en telefon linje der to personer snakker sammen (TCP) med en FM sending (UDP) Lenke til kommentar
Ernie Skrevet 26. april 2009 Del Skrevet 26. april 2009 Nei, feof sjekker status såvidt jeg veit. En kjapp sjekk mot en ikke-eksisterende IP tilsier at feof ikke fanger opp noe som helst på en UDP-tilkobling, selv ikke timeout på tilkoblingen gjør at den returnerer true. Lenke til kommentar
AlecTBM Skrevet 26. april 2009 Del Skrevet 26. april 2009 Stemmer, sjekka den nettopp Lenke til kommentar
Betenkt Skrevet 27. april 2009 Forfatter Del Skrevet 27. april 2009 Det dere sier er altså at jeg uansett ikke får pinget UDP-tjenestene mine? Er snakk om en Ventrilo server og div. spillservere, bl.a. Counter-Strike og Left 4 Dead. Lenke til kommentar
Ernie Skrevet 27. april 2009 Del Skrevet 27. april 2009 Det dere sier er altså at jeg uansett ikke får pinget UDP-tjenestene mine?Er snakk om en Ventrilo server og div. spillservere, bl.a. Counter-Strike og Left 4 Dead. I bunn og grunn, ja. I og med at det er snakk om spillservere kan det være et aldri så lite problem å finne ut hva protokollen støtter. Hvis den støtter ping-lignende forespørsler så er det mulig, ev. går det også an hvis man veit hvordan man kobler seg til/logger inn på serveren. Lenke til kommentar
Betenkt Skrevet 27. april 2009 Forfatter Del Skrevet 27. april 2009 Ok. Takk alle sammen =) Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå