port-for er en kommando-linje værktøj og en Python-bibliotek, som hjælper med lokale TCP-porte Management.
Den kan finde en ubrugt TCP localhost port og huske foreningen.
Dette kan være nyttigt, når du installerer en stak software med flere dele behov for portnumre.
Bemærk
Hvis du leder efter en midlertidig havn så socket.bind ((host, 0)) er din bedste satsning:
>>> Import socket
>>> S = socket.socket ()
>>> S.bind (("", 0))
>>> S.getsockname ()
(»0.0.0.0«, 54485)
port-for er nødvendig, når du har brug for vedvarende gratis lokale portnummer.
port-for er det stik modsatte af s.bind ((host, 0)) er forstand, at det ikke skal returnere porte, s.bind ((host, 0)), kan vende tilbage (fordi sådanne havne er sandsynligvis midlertidige omfordelt af OS).
Der er flere regler port-for forsøger at følge for at finde og returnere en ny ubrugt port:
1. Port skal være ubrugt: port-til kontrol dette ved at forsøge at oprette forbindelse til havnen og til at binde til det.
2. Port skal være IANA-tildelt og ellers ikke kendte: Det afstedkommes ved at opretholde ikke-tildelt porte liste (parses fra IANA og Wikipedia).
3. Havn bør ikke være inde flygtig portinterval. Dette er vigtigt, fordi havne fra flygtig portinterval kan tildeles midlertidigt efter OS (fx ved maskinens IP-stakken), og dette kan forhindre tjeneste genstart under visse omstændigheder. gimme_port returnerer ikke havne fra flygtige havneområder konfigureret på det nuværende maskine.
4. Andre heuristik anvendes også: port-for forsøger at returnere en havn fra større havneområder; det heller ikke tilbage havne, som er for tæt på kendte porte.
Installation
Hele systemet:
sudo easy_install port-til
Script forbrug
port-til
Dette hjælpeprogram faktisk ikke binder havnen eller på anden måde forhindrer porten i at blive taget af en anden software. Den forsøger imidlertid at vælge en port, der er mindre tilbøjelige til at blive anvendt af en anden software (og det er ubrugt ved at kalde naturligvis). Utility sikrer også, at port-til bar ikke vil returnere den samme port som port-for foo på samme maskine.
$ Sudo port-til foo
37.987
$ Sudo port-til foo
37.987
Du kan også vælge at præfikse din app navn:
$ Sudo port-til instance1.apache
35.456
Bemærk venligst, at port-til script kræver læse- og skriveadgang til /etc/port-for.conf så sudo kan være nødvendig for at køre den.
Bibliotek forbrug
>>> Import port_for
>>> Port_for.select_random ()
37.774
>>> Port_for.select_random ()
48324
>>> 80 i port_for.available_good_ports ()
False
. Grave i kildekoden til mere
Krav :
- Python
Kommentarer ikke fundet