Timout af connect() i netværks ip scanner program

Tags:    c++

<< < 12 > >>
Hej

Jeg er ved at lave et ip/port scanner program som jeg f.eks. skal scanne en switch på port 80 (dens webinterface port) for at finde ip'en på porten.

Så langt er jeg også kommet. MEN! hvis ip'en ikke eksistere så går der omkring 30 sekunder før at man får at vide at den ikke eksistere... og det er jo ikke helt optimalt til en ip/port scanner hehe, det er jo heller ikke nødvendigt at have så lang timout når det er på et lokaltnetværk, for hvis der er så lang timout så er der jo noget galt.
Hvordan får jeg ændret den timout?

Har kigget lidt på denne side men ikke fundet noget fornuftigt: http://tangentsoft.net/wskfaq/newbie.html

Nogen der har en ide?


Er der evt en der har en lille tuturial om normal echo ping og sådan?

På forhånd tak ;)



18 svar postet i denne tråd vises herunder
1 indlæg har modtaget i alt 1 karma
Sorter efter stemmer Sorter efter dato
For den komplette guide til netværksprogrammering, læs Beej's netværksguide, http://beej.us/guide/ (siden er dog nede lige pt). Skide god guide. Måske du kan bruge noget derfra. Han forklarer det mest basale.



Prøv at tage et kig her, har ikke læst det men det ser udtil at det du skal bruge (skimmet den)

http://www.codeguru.com/forum/showthread.php?t=312668



Aha må jeg kigge på... Ville være rart hvis der bare var en der hade en lille hurtig kode hehe.

Har faktisk fundet en løsnign (skaber do af og til nogle sære crash)
Nemlig at kalde connect i en tråd for sig og så f.eks. vente 500ms og så kalde recv() og hvis den giver ikke connected så kan man så kalde close() og lukke forbindelsen.. Godt nok en lidt latterlig forkert løsning meeen



Må vi se noget kode ?
For hvis du ikke kan forbinde burde du få en ICMP besked med en fejl og det burde få dit connect() kald til at returnere med det samme med en fejl (-1).



Ahh kode prosit... 500 linjer fra en form for netværkskomponent hehee... Har ikke lavet en simpel version endnu.

Problemet ligger egentligt ikke i at jeg ikke kan connecte... problemet er at der går over 30 sekunder før jeg får at vide at jeg ikke kan connecte...


Men kan da godt rigge noget kode sammen som du kan se hvis det er?



Indlæg senest redigeret d. 25.09.2008 19:22 af Bruger #3861
Ahh kode prosit... 500 linjer fra en form for netværkskomponent hehee... Har ikke lavet en simpel version endnu.

Problemet ligger egentligt ikke i at jeg ikke kan connecte... problemet er at der går over 30 sekunder før jeg får at vide at jeg ikke kan connecte...


Men kan da godt rigge noget kode sammen som du kan se hvis det er?

Det ville hjælpe for det skal ikke tage mange millisekunder at fortælle, at en service ikke kører.



Jeg har lige hakket følgende program sammen:
Fold kodeboks ind/udKode 


Det forsøger at oprette en forbindelse til den specificerede IP adresse og port og fortæller, om det gik godt:

Fold kodeboks ind/udKode 

I det ovenstående kunne jeg forbinde til min router på port 80 men ikke port 60.



Yes yes. Håber du lige kan vente et par dage har ikke så meget tid i weekenden hehe



Yes yes. Håber du lige kan vente et par dage har ikke så meget tid i weekenden hehe

Well, jeg er på JAOO konferencen hele næste uge, så dér får jég ikke tid :-)



Okay har lige set din kode. Det er nogen lunde lige så langt jeg er kommet, men der er jo stadig den der 30 sekunder før den mælder tilbage hvis den ikke kan forbinde..

Nå må jeg se om jeg får noget tid i morgen eller lørdag hehe



Indlæg senest redigeret d. 25.09.2008 23:11 af Bruger #3861
<< < 12 > >>
t