Početak›Forumi›Linuks›Programiranje›pomoc oko provere da li je neki port otvoren
- This topic has 11 odgovora, 2 glasa, and was last updated 18 years ranije by pedjaman.
-
AutorČlanci
-
23. mart 2006. u 2:09 pm #7173MisterNoUčesnik
Treba bi c# code ili eventualno vbs ili cmd skripta za proveru da li je neki remote port otvoren ili ne. Ako je skripta u pitanju treba mi samo kao rezultat true ili false.
23. mart 2006. u 10:19 pm #42516pedjamanUčesnikUH… pa od svih mogućih varijanti ti nađe tri koje su isključivo Microsoft da pitaš na Linux sajtu 🙂
Mislim da u windowsu ne možeš ispitati otvorenost nekog porta a da ne instaliraš neki dodatni softver.
Jedino da instaliraš nmap program, kojim možeš ispitivati koji god želiš port, pa da ga pozivaš iz skripta i obradiš povratnu informaciju.
C#… hm pa ako ima neku klasu tipa TCPPort ili TCPCfient, možeš sa time da odradiš to verovatno
NAravno, možda neko ima bolju ideju.
24. mart 2006. u 9:43 am #42517MisterNoUčesnikC#… hm pa ako ima neku klasu tipa TCPPort ili TCPCfient, možeš sa time da odradiš to verovatno
Ma ima klasu samo je problem sto kod sinhronog rada blokira celu aplikaciju dok pokusava da se konektuje. Dok sa asinhronim radom ne mogu da se izborim jos uvek. Zato mi treba ne nesto tipa nmapa jer mi on ne radi posao vec neka vbs ili cmd skripta ili sam c# code ali koji je nevezan od socketa.
24. mart 2006. u 10:04 am #42518pedjamanUčesnikSocket je neophodan element ako želiš bilo kako da komuniciraš sa nekim računarom, pa i da ispitaš otvorenost porta. Socket možeš otvoriti u blocking i asinhronom modu. Ako ti asinhronost ne odgovara, kreiraj nit (thread) u kojoj ćeš koristiti blokirajući pristup i to ti neće blokirati aplikaciju. To je najbolji pristup u tom slučaju.
skript vbs ili šta već u suštini mora da pozove neku aplikaciju koja je ili nije ugrađena u operativni sistem. A svaka aplikacija radi na jedan od dva gore navedena načina.
U prevodu, pogrešan ti je pristup svemu.
24. mart 2006. u 10:32 am #42519MisterNoUčesnikPa sa multi threadingom sam pokusavao. Evo vrtim se vec par dana. Stavio sam da mi socket ide na beginconnect i da od asinhrone funkcije ceka odgovor odnosno endconnect, a da se ostali kod aplikacije normalno izvrsava. Medjutim kako sam ti rekao nisam se do kraja snasao. Jer sam uspeo da dodjem do toga da kada mi je veza konektovana on vrati true, medjutim kada nije opet mi se ponasa kao da je u sinhronom odnosno blocking modu.
Zato sam spominjao neku exsternu skriptu, jer se ovde vrtim u krug.Znaci pristup mi nije pogresan, nego gresim negde u kodu. Imas li slucajno neki primer tog tipa. Ja sam gledao sa msdn sajta i probao da iskoristim njihove examplove, ali kako rekoh bez rezultata.
24. mart 2006. u 9:54 pm #42520pedjamanUčesnikPa ako socket otvaraš u niti, ne bi trebalo da ti se pojavi blokada programa.
Ima nešto da razjasnimo, da bi se proverilo da li je port dostupan, ne postoji eksplicitan način. Jednostavno, ti pokušaš da otvoriš socket ka “server:port” pa ako nema odgovora neko vreme, onda niko ne sluša na njemu ili te odbije. E poenta je u delu “neko vreme” jer kakvo god da napraviš rešenje, ono ne može biti brže od nmap-a. Moraš da odrediš DELAY koji treba sačekati da konekcija eventualno uspe. Što manje vreme odrediš – brža će biti provera ali i veća šansa da bude pogrešna jer možda server nije stigao da odreaguje ili ti je net spor.Možda bi trebalo da izneseš svoj zadatak detaljno pa da predložimo neko ekonomično rešenje.
Tj, da li proveravaš portove na svojoj ili udaljenoj mašini, da li samo jedan ili više, …25. mart 2006. u 2:12 pm #42521MisterNoUčesnikUspeo sam da nadjem neki chat primer gde se koristi asinhrono povezivanje pa cu probati da to iskoristim.
Inace sledeca je problematika. Treba mi socket konekcija ka udaljenom serveru kome prilazim preko frame relay veze. Sa socketom imam neka cetiri tipa komunikacije. Odnosno saljem mu string za logovanje i string za logout, a plus mu u toku rada prosledjujem dva razlicita upita da bi od njega dobio povratne informacije. Sve sam to bio zavrsio sa klasicnom blocking konekcijom. Medjutim sada moram da uradim deo za proveru konekcije ka socketu na neki vremenski intreval u klasicnom modu onda puca. Probacu glavno da iskoristim ovaj primer asinhronog konektovanja koji sam skinuo sa neta pa cu javiti sta sam uradio.
25. mart 2006. u 2:13 pm #42522MisterNoUčesnikUspeo sam da nadjem neki chat primer gde se koristi asinhrono povezivanje pa cu probati da to iskoristim.
Inace sledeca je problematika. Treba mi socket konekcija ka udaljenom serveru kome prilazim preko frame relay veze. Sa socketom imam neka cetiri tipa komunikacije. Odnosno saljem mu string za logovanje i string za logout, a plus mu u toku rada prosledjujem dva razlicita upita da bi od njega dobio povratne informacije. Sve sam to bio zavrsio sa klasicnom blocking konekcijom. Medjutim sada moram da uradim deo za proveru konekcije ka socketu na neki vremenski intreval u klasicnom modu onda puca. Probacu glavno da iskoristim ovaj primer asinhronog konektovanja koji sam skinuo sa neta pa cu javiti sta sam uradio.
25. mart 2006. u 2:14 pm #42523MisterNoUčesnikUspeo sam da nadjem neki chat primer gde se koristi asinhrono povezivanje pa cu probati da to iskoristim.
Inace sledeca je problematika. Treba mi socket konekcija ka udaljenom serveru kome prilazim preko frame relay veze. Sa socketom imam neka cetiri tipa komunikacije. Odnosno saljem mu string za logovanje i string za logout, a plus mu u toku rada prosledjujem dva razlicita upita da bi od njega dobio povratne informacije. Sve sam to bio zavrsio sa klasicnom blocking konekcijom. Medjutim sada moram da uradim deo za proveru konekcije ka socketu na neki vremenski intreval u klasicnom modu onda puca. Probacu glavno da iskoristim ovaj primer asinhronog konektovanja koji sam skinuo sa neta pa cu javiti sta sam uradio.
25. mart 2006. u 10:29 pm #42524pedjamanUčesnikImam dosta iskustva sa SOCKET programiranjem (C, C++), i otprilike da se pokazalo da nema načina da ubrzaš proveru. Nekih 5 sekundi je interval koji moraš gubiti bez obzira da li je sinhrono ili asinhorno da bi dobio pouzdane podatke
-
AutorČlanci
Moraš biti prijavljen da bi postavio komentar u ovoj temi.