Bash belgelerinin bu konuda biraz yanıltıcı olduğunu düşünüyorum. Koda baktığımızda, ağ yönlendirmelerinin tanıtıldığı 2.04 sürümüne geri dönüyor /dev/tcp
ve /dev/udp
aşağıdaki gibi çalışıyor:
- derleme sırasında,
configure
komut dosyası çeşitli ağ özelliklerinin desteklenip desteklenmediğini denetler; öyleyse, ağ yönlendirmeleri etkinse (varsayılan olarak budur), dahili ağ kodu yerleşiktir;
- dahili ağ kodu yerleşikse
/dev/tcp
ve /dev/udp
(doğru biçimde) dahili olarak işleniyorsa; aksi takdirde bir uyarı verilir (“/ dev / (tcp | udp) / ana bilgisayar / bağlantı noktası ağ olmadan desteklenmez”) ve Bash sistemde verilen yolu açmaya çalışır;
- ağ yönlendirmeleri yapılandırılırsa, özel bir şey yapılmaz.
Bunun kaynaması:
- ağ yeniden yönlendirmesi etkinse:
- ağ oluşturma hedef platformda destekleniyorsa
/dev/tcp
ve /dev/udp
her zaman dahili olarak ele alınacaksa;
- aksi halde Bash dosyayı uyarır ve “körü körüne” açmaya çalışır; sistem bir şekilde destekliyorsa
/dev/(tcp|udp)/host/port
, bu kullanılacak, aksi takdirde yeniden yönlendirme başarısız olacaktır;
- ağ yeniden yönlendirmesi devre dışı bırakılmışsa, özel işlem gerçekleştirilmez; yukarıdaki gibi, eğer sistem bir şekilde destekliyorsa
/dev/(tcp|udp)/host/port
, bu kullanılacaktır, aksi takdirde yeniden yönlendirme başarısız olacaktır.
/dev/tcp
bazı sistemlerde var, ama bildiğim kadarıyla hiçbiri Bash ile aynı soyutlamayı desteklemiyor. Solaris'te, ağ yapılandırmasını sorgulamak ve değiştirmek /dev/tcp
için ndd
araçla birlikte kullanılır . In XTı (ayrıca bkz Açık Grubu , üye iseniz) t_open
fonksiyonu ile kullanılabilir /dev/tcp
bir TCP bağlantısı açmaya, ancak yol tabanlı kurulum kullanmaz, hedef ana belirtmek için ayrı bir veri yapısı var ve port (ve diğer parametreler).
/dev
şu anki linux'larda bir tmpfs ve daha eski olanlarda kök bölümünde idi. Bu yüzden şu anda imkansız. Bir sysfs veya procfs uzantısıyla kolayca yapılabilir (her ikisi de çok esnek ve benzerdir (aslında muhtemelen kimse neden aynı olmadıklarını bilmez)), bugün kimse yapmıyor, ancak yaklaşık 100'de yapılabilir Kod satırları.