Portál AbcLinuxu, 4. května 2025 05:46
V některých distribucích se lze potkat i s OpenBSD verzí netcatu, která má (mimo jiné) odlišnou syntaxi pro listen mode:
netcat -l <port>
echo "ahoj" | netcat -l -p 3000 # ~odosielateľ správy netcat localhost 3000 | cat # ~prijimateľ správyfunguje to pekne, ale ked "ctrl+c" ktorúkoľvek stranu, tak spadne aj druhá - čo je samozrejme správne. No a ja by som chcel aby to fungovalo tak že na jednej strane by bežal "príjimateľ správy", ten by bežal trvalo a na druhej trane by "odosielateľ" správy iba zbehol a skončil. A teda mohol by som opakovanie takto posielať správy. Zaujíma ma to čisto teoreticky nemám momentálne na to žiadne využitie...
while true; do netcat localhost 3000 | cat; done localhost [127.0.0.1] 3000 (?) : Connection refused localhost [127.0.0.1] 3000 (?) : Connection refused localhost [127.0.0.1] 3000 (?) : Connection refused localhost [127.0.0.1] 3000 (?) : Connection refused localhost [127.0.0.1] 3000 (?) : Connection refused localhost [127.0.0.1] 3000 (?) : Connection refused localhost [127.0.0.1] 3000 (?) : Connection refused localhost [127.0.0.1] 3000 (?) : Connection refused ^Clocalhost [127.0.0.1] 3000 (?) : Connection refusedteda nekonečný sled týchto hlášok... A z princípu v tom mojom scénari, prijmateľ musí bežať prvý/stále...
while true;do netcat -lp 6000 >> MSGs; done # naslouchá příjmá a zapisuje zprávy pod sebe do souboru echo "Ahoj"|netcat localhost 6000 # posílá zprávy
/dev/tcp/hostname.domain/port
(napr. /dev/tcp/google.com/80
. Podobne s udp. Cim sa da nahradit pouziteie netcatu ako odosielacieho toolu a rovnako nie je problem s nutnostou zabijat cez Ctrl-c.
netcat -l -p 3333V 2. terminale:
echo aaaa >/dev/tcp/localhost/3333V 1. sa vypise text
aaaa
a netcat sa ukonci. Co nefunguje?
[pavlix@dragon ~]$ ls -l /dev/tcp/google.com/80 ls: cannot access /dev/tcp/google.com/80: No such file or directory [pavlix@dragon ~]$ ls -l /dev/tcp/google.com ls: cannot access /dev/tcp/google.com: No such file or directory [pavlix@dragon ~]$ ls -l /dev/tcp ls: cannot access /dev/tcp: No such file or directoryNavíc mi nefunguje ani oboustranná komunikace (přesněji řečeno nevím jak na ni).
[pavlix@dragon ~]$ socat /dev/tcp/google.com/80 - 2012/05/27 11:19:52 socat[17521] E open("/dev/tcp/google.com/80", 0102, 0666): No such file or directoryPřijde mi, že autor tohoto asi nepřemýšlel hlavou. Nebo ani ne tak autor, ten si možná prostě jenom po večerech hrál, hrál, až došel do fáze proof of concept. Spíš ten, kdo tuhle „feature“ zařadil.
wget
, netcat
či socat
touhle věcí je asi
/dev/fd/0
resp. /dev/stdin
apod., což umožní předat standardní vstup/výstup i programům, které -
neumí.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.