Saya bertanya-tanya bagaimana cara mendapatkan skrip shell untuk mendengarkan pada port tertentu (mungkin menggunakan netcat?). Semoga saat pesan dikirim ke port itu, skrip merekam pesan dan kemudian menjalankan fungsinya.
Contoh:
Komputer 1 memiliki skrip berjalan di latar belakang, skrip membuka port 1234 untuk lalu lintas masuk
Komputer 2 mengirim pesan "hello world" ke port 1234 komputer 1
Script on Computer 1 mencatat pesan "hello world" ke variabel $ MESSAGE
Script menjalankan fungsi sekarang bahwa variabel $ MESSAGE telah ditetapkan
Bagaimana cara saya menyumbang ini?
sumber
netcat
ada setelah satu koneksi.socat
akan melakukan hal yang sama jika Anda menghapus ", garpu" dari baris perintah saya.Cara UCSPI-TCP
Ada toolets selain netcat. Berikut ini cara menggunakannya. Mereka semua menganggap keberadaan
service
skrip yang menjalankan Andafunc
, apa pun itu:The
TCPREMOTEIP
danTCPREMOTEPORT
variabel lingkungan didefinisikan oleh protokol ucspi-TCP.Script ini muncul sebagai proses individu per koneksi TCP menggunakan berbagai toolet. Dalam apa yang berikut, alat ditampilkan seperti yang digunakan dalam skrip pendek. Skrip semacam itu, yang dinamai secara konvensional
run
, adalah cara seseorang menjalankannya di bawah manajer layanan keluarga-daemontools. Mereka tentu saja dapat dipanggil secara langsung.Bernstein ucspi-tcp
Dengan ucspi-tcp Daniel J. Bernstein,
tcpserver
memunculkanservice
skrip:Ada versi Bernstein yang ditingkatkan versi IPv6 ucspi-tcp. Dengan Erwin Hoffman,
tcpserver
upaya untuk menangani IPv4 dan IPv6 dalam satu (jika sistem operasi mendukung ini, beberapa tidak) dan memunculkanservice
skrip:Bercot s6-networking, s6, dan execline
Dengan s6-networking Laurent Bercot,
s6-tcpserver4
dans6-tcpserver6
menangani IPv4 dan IPv6 secara terpisah, dan menelurkanservice
skrip:Seseorang dapat membangun server yang lebih kompleks dengan menempatkan alat seperti
s6-tcpserver-access
dans6-applyuidgid
dalam rantai segera sebelumnya./service
.tidak ada alat UCSPI
Dengan nosh toolset,
tcp-socket-listen
dengarkan pada soket TCP, lagi-lagi menangani IPv4 dan IPv6 secara bersamaan jika sistem operasi mendukung melakukannya, dan rantaitcp-socket-accept
yang pada gilirannya memunculkanservice
skrip:Atau satu menjalankan dua proses terpisah, pada sistem operasi seperti OpenBSD:
Seseorang dapat membangun server yang lebih kompleks dengan menempatkan alat-alat seperti
ucspi-socket-rules-check
dansetuidgid
dalam rantai.Pape ipsvd
Dengan ipsvd Gerrit Pape,
tcpsvd
menumbuhkan paraservice
naskah:UCSPI-UDP
service
Skrip umum dapat menangani ketika input standar adalah soket aliran . Tapi Anda tidak menentukan TCP secara eksplisit.Meskipun beberapa toolkit yang disebutkan di atas dapat digunakan untuk membangun server UDP dengan cara yang mirip dengan bagaimana seseorang dapat menggunakannya untuk membangun server TCP (cf
udp-socket-listen
in nosh), sulit untuk membangun program layanan aktual dengan skrip shell, karena bawaan shell tidak tentu mengatasi dengan baik ketika input standar adalah soket datagram .Bacaan lebih lanjut
tcpserver
Program . ucspi-tcp.tcpserver
. ucspi-tcp6 . fehcom.de.s6-tcpserver4
. Laurent Bercot. s6-networking . skarnet.org.s6-tcpserver6
. Laurent Bercot. s6-networking . skarnet.org.s6-tcpserver-access
. Laurent Bercot. s6-networking . skarnet.org.s6-applyuidgid
. Laurent Bercot. s6 . skarnet.org.tcpserver
. Panduan nosh . Perangkat lunak.tcp-socket-listen
. Panduan nosh . Perangkat lunak.tcp-socket-accept
. Panduan nosh . Perangkat lunak.ucspi-socket-rules-check
. Panduan nosh . Perangkat lunak.setuidgid
. Panduan nosh . Perangkat lunak.udp-socket-listen
. Panduan nosh . Perangkat lunak.tcpsvd
. ipsvd . Gerrit Pape. smarden.org.sumber
Ini juga dapat dilakukan dengan
udpsvd
yang tersedia di Ubuntu / Debian ( lihat manual ) serta built-in ke busybox. Contoh:Ganti
cat
dengan skrip shell Anda untuk mengeksekusi, stdin adalah paket.Dengan
netcat
, Anda dapat berjalan dalam satu lingkaran untuk terus mendengarkan, dan meneruskan setiap paket kemyscript
:Jika Anda ingin meneruskan semua paket yang diterima sebagai aliran ke satu permintaan naskah Anda:
sumber