port-bir komut satırı yardımcı programı ve yerel TCP portları yönetimi ile yardımcı olan bir Python kütüphanesi.
Bir kullanılmayan TCP localhost bağlantı noktası bulmak ve dernek hatırlıyorum.
Eğer port numaralarını ihtiyacı birden parçaları ile yazılım yığını yüklerken bu yararlı olabilir.
Not
Eğer socket.bind geçici liman arıyorsanız ((ev sahibi, 0)) en iyi bahis:
>>> Import soketi
>>> S = socket.socket ()
>>> S.bind (("", 0))
>>> S.getsockname ()
('0.0.0.0', 54.485)
Kalıcı ücretsiz yerel port numarasını gerektiğinde liman için gereklidir.
port için s.bind tam tersidir ((ev sahibi, 0)) bu tür bağlantı noktaları geçici olması muhtemeldir yeniden çünkü ((ev sahibi, 0)) (döndürebilir s.bind noktalarını geri gerektiğini duygusu ) OS tarafından.
Port bulmak ve yeni bir bağlantı noktası kullanılmayan dönmek için takip çalışıyor birkaç kural vardır:
1. Liman kullanılmamış olması gerekir: port için bağlantı noktasına bağlanmak için ve kendisine bağlamak için çalışarak çek bu.
2. Liman IANA atanmamış ve aksi tanınmış olmamalıdır: Bu (IANA ve Wikipedia çözümlenen) atanmamış bağlantı noktaları listesini muhafaza başarılmıştır.
3. Liman kısa ömürlü bağlantı noktası aralığı içinde olmamalıdır. Kısa ömürlü bağlantı noktası aralığından bağlantı noktaları (makinenin IP yığını örneğin) işletim sistemi tarafından geçici olarak atanabilir ve bu bazı durumlarda hizmet yeniden önleyebilir çünkü bu önemlidir. gimme_port geçerli makine yapılandırılmış kısa ömürlü bağlantı noktası aralıkları noktalarını döndürmez.
4. Diğer sezgisel tarama da uygulanır: port için çalışır büyük port aralıklarında bir port dönmek için; o da iyi bilinen limanlara çok yakın bağlantı noktalarını döndürmez.
Kurulum
Sistem genelinde:
sudo easy_install port için
Komut kullanımı
port için
Bu programı aslında noktasını bağlamak ya da başka bir yazılım tarafından götürülürken bağlantı noktasını engeller değil. Ancak başka bir yazılım tarafından kullanılacak olasılığı daha düşük bir bağlantı noktası seçin çalışır (ve tabii ki çağrı sırasında kullanılmayan). Yardımcı da liman-bar olarak aynı makine üzerinde foo port-için aynı bağlantı noktasını geri olmayacağından emin kılar.
$ Sudo foo port için
37.987
$ Sudo foo port için
37.987
Ayrıca uygulama adı öneki isteyebilirsiniz:
$ Sudo instance1.apache port için
35.456
Bu port için komut okuma gerektirir unutmayın ve bunu çalıştırmak için gerekli olabilir bu yüzden sudo /etc/port-for.conf erişimi yazınız.
Kütüphane kullanımı
>>> Import port_for
>>> Port_for.select_random ()
37774
>>> Port_for.select_random ()
48324
>>> Port_for.available_good_ports 80 ()
Yanlış
. Daha fazla bilgi için kaynak koduna Dig
Gereksinimler :
- Python
Yorum Bulunamadı