Paket almak ve tam olarak ne aldığını cevaplamak için bir UDP yankı sunucusu istiyorum. Bunu netcat
veya kullanarak nasıl yapabilirim socat
? Sonsuza kadar hayatta kalmalı ve birkaç ana bilgisayardan gelen paketleri işlemelidir.
Paket almak ve tam olarak ne aldığını cevaplamak için bir UDP yankı sunucusu istiyorum. Bunu netcat
veya kullanarak nasıl yapabilirim socat
? Sonsuza kadar hayatta kalmalı ve birkaç ana bilgisayardan gelen paketleri işlemelidir.
Yanıtlar:
Bir başka netcat benzeri araç, bu ncat
gibi şeyleri basitleştirmek için birçok yerleşik güzellik içeren nmap sürümüdür . Bu işe yarar:
ncat -e /bin/cat -k -u -l 1235
-e yürüttüğü anlamına gelir / bin / cat (yazdıklarınızı yankılamak için)
-k hayatta kalmak anlamına gelir, her bağlantıdan sonra dinlemeye devam eder
-u udp anlamına gelir
-l 1235, 1235 numaralı bağlantı noktasını dinlediği anlamına gelir
Kullandığım socat -v PIPE udp-recvfrom:5553,fork
sunucusu ve çalıştırmak socat - udp:localhost:5553
müşteriler için.
Bu çok yardımcı oldu!
socat TCP4-LISTEN:2000,fork EXEC:cat
Ekot sunucusu olarak socat'ı (netcat kullanmak yerine) ve istemci olarak netcat'i de kullanabilirsiniz.
Socat echo server (1234 numaralı TCP bağlantı noktasını dinler):
socat -v tcp-l:1234,fork exec:'/bin/cat'
Netcat istemcisi (1234 numaralı TCP bağlantı noktasındaki sunucuya bağlanır):
nc serverip 1234
Bunun bir C program yazabilirsiniz çatal nc -u -l -p 4321
ve daha sonra kullandığı (2) dup bağlamak için:
Sonra sonsuz bir döngüde ebeveyn stdin'den okur ve ebeveyn ne okursa onu stdout'ta yazar.
socat -v PIPE UDP-LISTEN:5555,fork
, ancak ikinci bağlantı reddedilir. Bu arada, TCP-LISTEN ile iyi çalışıyor. Kod yazmaktan kaçınıyorum, aksi takdirde hepsini C
Windows üzerinde çalışıyorsanız ve cygwin gibi unix benzeri bir ortam kullanıyorsanız, netcat migth -e parametresini sağlamaz. Bu benim için iyi çalıştı.
netcat
Ubunutu'da önceden yüklenmiş çözüm
netcat
Önceden yüklenmiş Ubuntu 16.04 de geliyor netcat-openbsd
ve hiçbir vardır -c
seçeneği, ancak manuel bir çözüm sunar:
sudo mknod -m 777 fifo p
cat fifo | netcat -l -k localhost 8000 > fifo
Sonra müşteri örneği:
echo abc | netcat localhost 8000
YAPILACAKLAR: giriş dizesi değeri nasıl değiştirilir? Aşağıdaki herhangi bir yanıt döndürmez:
cat fifo | tr 'a' 'b' | netcat -l -k localhost 8000 > fifo
Ancak uzak kabuk örneği şu şekilde çalışır:
cat fifo | /bin/sh -i 2>&1 | netcat -l -k localhost 8000 > fifo
Ancak eşzamanlı taleplerle nasıl başa çıkacağımı bilmiyorum.