Paket almak ve tam olarak ne aldığını cevaplamak için bir UDP yankı sunucusu istiyorum. Bunu netcatveya 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 netcatveya 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 ncatgibi ş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,forksunucusu ve çalıştırmak socat - udp:localhost:5553müş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-openbsdve hiçbir vardır -cseç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.