hawe-vir 'n opdrag-lyn nut en 'n Python biblioteek wat help met die plaaslike TCP-poorte managment.
Dit kan 'n ongebruikte TCP localhost hawe vind, en onthou die vereniging.
Dit kan nuttig wees wanneer jy die installering van 'n stapel van sagteware met verskeie dele hoef hawe getalle.
Nota strong>
As jy op soek is na 'n tydelike hawe dan socket.bind ((host, 0)) is jou beste bet:
>>> Invoer socket
>>> S = socket.socket ()
>>> S.bind (("", 0))
>>> S.getsockname ()
('0.0.0.0', 54485)
Port-vir nodig wanneer jy dit nodig aanhoudende gratis plaaslike poort nommer.
Port-vir die presiese teenoorgestelde van s.bind ((host, 0)) is sin dat dit nie sou terugkeer poorte wat s.bind ((host, 0)) kan terugkeer (want sulke hawens is tydelik blyk te wees oorgeplaas deur OS).
Daar is verskeie reëls hawe-vir probeer om te volg om te vind en terug te keer om 'n nuwe ongebruikte hawe:
1. Port moet ongebruikte wees: port-tjeks hierdie deur te probeer om aan te sluit by die hawe en om dit te bind.
2. Port moet IANA toegewezen en andersins nie bekend: dit is acheived deur die handhawing toegewezen hawens lys (ontleed van IANA en Wikipedia).
3. Port moet nie binne efemere hawe reeks. Dit is belangrik omdat die hawens van efemere hawe reeks deur OS (bv deur masjien se IP stack) tydelike kan toegeskryf word en dit kan diens herlaai voorkom in sommige omstandighede. gimme_port nie terugkeer hawens van efemere hawe reekse ingestel teen die huidige masjien.
4. Ander heuristiek word ook toegepas: port-vir drieë 'n hawe om terug te keer van 'n groter hawe reekse; Dit is ook nie terug hawens wat te naby aan die bekende hawens.
Installasie
Stelsel-wye:
sudo easy_install hawe-vir
Script gebruik
Port-vir
Hierdie program maak eintlik nie bind die hawe of anders verhoed dat die hawe van geneem word deur 'n ander sagteware. Dit probeer egter 'n hawe wat is minder geneig om te word deur 'n ander sagteware gebruik word om te kies (en dit is ongebruikte by die tyd van die roeping van die kursus). Nut maak ook seker dat die hawe-vir bar nie sal terugkeer dieselfde hawe as hawe-vir cat op dieselfde masjien.
$ Sudo hawe-vir cat
37.987
$ Sudo hawe-vir cat
37.987
Jy kan ook jou app naam voorvoegsel:
$ Sudo hawe-vir instance1.apache
35.456
Neem asseblief kennis dat die hawe-vir script vereis lees en skryf toegang so sudo te /etc/port-for.conf nodig mag wees ten einde dit te doen.
Biblioteek gebruik
>>> Invoer port_for
>>> Port_for.select_random ()
37774
>>> Port_for.select_random ()
48324
>>> 80 in port_for.available_good_ports ()
Valse
. Grawe in die bron-kode vir meer
Vereistes :
- Python
Kommentaar nie gevind