Portál AbcLinuxu, 12. května 2025 05:07

Dotaz: Java seznam jmen portu

21.8.2009 13:11 Karel Kral
Java seznam jmen portu
Přečteno: 318×
Odpovědět | Admin

Dobry den, udelal jsem si v Jave jednoduchy port scanner a chtel bych pridat funkci, ze ke kazdemu otevrenemu portu se vypise i jmeno sluzby napriklad

TCP 21 FTP

TCP 22 SSH

atd.

Sehnat jmena sluzbe pro jednotlive porty neni problem (napr http://www.iana.org/assignments/port-numbers). Problem vsak je je vsechny dostat do pole/listu. Vypisovat rucne byt "jen" prvnich 1024 nazvu sluzeb by asi nebylo ono.

Nemate proto prosim uz nekdo sestavene takove pole/seznam? Verim, ze by to slo nekde najit, ja vsak hledal bezuspesne.

Nástroje: Začni sledovat (0) ?Zašle upozornění na váš email při vložení nového komentáře.

Odpovědi

21.8.2009 13:23 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Java seznam jmen portu
Odpovědět | | Sbalit | Link | Blokovat | Admin
Ziadne take pole by som neplnil, radsej by som si napisal jednoduchy parser, ktory precita subor /etc/services, alebo jeho bundlovanu verziu, ak subor neexistuje.

21.8.2009 15:04 Karel Kral
Rozbalit Rozbalit vše Re: Java seznam jmen portu

Tim bych se vazal pouze na Linux/Unix u Windows a dalsich platforem bych musel hledat dalsi reseni. Z tohoto hlediska mi prijde lepsi si spise udelat to pole.

21.8.2009 15:22 Messa | skóre: 39 | blog: Messa
Rozbalit Rozbalit vše Re: Java seznam jmen portu
Nevěřím, že jediný způsob jak naplnit pole, který napadne Java programátora, je přepsat ho ručně. Máme počítače, ne psací stroje. Přinejmenším se divím, že vás nenapadlo vytvořit aspoň nějaké XML :-) Až budete do programu vkládat obrázek, taky ho budete přepisovat?

Cronin se zmínil o tom, že ten soubor by se dal přibalit k programu (tzn. bundlovat) právě pro případ, že v operačním systému nebude k dispozici. Parsovat a načíst do paměti jednoduchý textový soubor je nejspíš nejlepší a široce používané řešení a to je důvod, proč jste na webu nenašel to, co jste hledal.

A nebo, pokud by byl problém přibalit textový soubor k vašemu programu, šlo by z něj přinejhorším automaticky vygenerovat javový zdrojový kód, což by ve výsledku bylo přesně to, čeho byste jinak pracně dosahoval přepisováním.
21.8.2009 16:16 l4m4
Rozbalit Rozbalit vše Re: Java seznam jmen portu
Přegenerovat /etc/services do zdrojáku pole v Javě je tak čtyřřádkový skript v Pythonu či Perlu.

Parser v Javě bude nejspíš 10x více kódu, nicméně ho lze použít jak k parsování /etc/services dynamicky, kde existuje, tak ke generování toho statického pole, takže to je asi nakonec praktičtější řešení.
21.8.2009 19:43 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Java seznam jmen portu
Vyhoda dynamickeho parsovania lokalneho /etc/services je v tom, ze berie do uvahy lokalne modifikacie tohto suboru. Nie je to sice bezne, ale tento subor predpoklada definiciu "vlastnych" sluzieb a to prave pre ucel programov, ktore by na tom danom systeme chceli cislo portu prekladat na nieco "human-readable".
22.8.2009 10:56 rastos | skóre: 63 | blog: rastos
Rozbalit Rozbalit vše Re: Java seznam jmen portu
Parser v Javě bude nejspíš 10x více kódu
Vyzerá to tak, že sa to skutočne rieši parsovaním /etc/services.

http://www.dan.drydog.com/java/GetServiceByName.java
21.8.2009 17:27 cronin | skóre: 49
Rozbalit Rozbalit vše Re: Java seznam jmen portu
Tak este raz a pomaly: ...alebo jeho bundlovanu verziu, ak subor neexistuje.

Založit nové vláknoNahoru

Tiskni Sdílej: Linkuj Jaggni to Vybrali.sme.sk Google Del.icio.us Facebook

ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.