נמל-להוא כלי שורת הפקודה וספריית פייתון שעוזרת עם הנהלת יציאות TCP המקומיות.
זה יכול למצוא נמל localhost TCP שאינו בשימוש וזוכר את העמותה.
זה יכול להיות שימושי כאשר אתה מתקין מחסנית של תוכנה עם חלקים רבים הזקוקים למספרי נמל.
שים לב
אם אתה מחפש יציאה זמנית ולאחר מכן socket.bind ((מארח, 0)) הוא ההימור הטוב ביותר שלך:
>>> שקע יבוא
>>> S = socket.socket ()
>>> S.bind (("", 0))
>>> S.getsockname ()
('0.0.0.0', 54,485)
נמל-להוא הכרחי כאשר אתה צריך מספר יציאה מתמשך חופשי מקומי.
נמל-להוא ההפך מs.bind המדויק ((מארח, 0)) הוא מובן זה שהיא לא צריכה לחזור יציאות שs.bind ((מארח, 0)) עשויים לחזור (כי יציאות כאלה עשויים להיות זמניים מחדש על ידי מערכת הפעלה).
ישנם מספר כללי נמל-למנסה לבצע כדי למצוא ולהחזיר את נמל שאינו בשימוש חדש:
1. הנמל חייב להיות בשימוש: נמל-לבדיקות זה על ידי מנסה להתחבר ליציאה ולהיקשר לזה.
2. נמל חייב להיות IANA שלא הוקצה ואחרת לא ידוע: זה acheived על ידי שמירה על רשימה שלא הוקצה יציאות (מנותחת מIANA וויקיפדיה).
3. נמל לא צריך להיות בתוך טווח יציאות ארעי. זה חשוב כי יציאות מטווח יציאות ארעיות ניתן להקצות זמניות על ידי מערכת הפעלה (למשל על ידי מחסנית ה- IP של מכשיר) וזה עלול למנוע הפעלה מחדש שירות בנסיבות מסוימות. gimme_port אינו חוזר יציאות מטווחי נמל חלוף מוגדרים במכונה הנוכחית.
4. היוריסטיקה אחרות חלות גם: נמל-לניסיונות לחזור יציאה מנמל טווחים גדולים יותר; זה גם לא מחזיר יציאות שהם קרובים מדי ליציאות ידועות.
התקנה
כלל-מערכתי:
easy_install sudo נמל-ל
שימוש סקריפט
כלי זה לא ממש מחייב את הנמל או אחר מונע את היציאה מננקט על ידי תוכנה אחרת. זה עם זאת מנסה לסמן יציאה שהיא פחות סיכוי להיות בשימוש על ידי תוכנה אחרת (וזה שאינו בשימוש בעת שקרא כמובן). שירות גם מוודא שבר נמל-ללא יחזיר את אותה היציאה כיציאה-לfoo על אותו המחשב.
sudo $ נמל-לfoo
37,987
sudo $ נמל-לfoo
37,987
ייתכן גם שתרצה שתופיע לפני שם האפליקציה שלך:
sudo $ נמל-לinstance1.apache
35,456
אנא שים לב כי תסריט נמל-לדורש לקרוא ולכתוב גישה ל/etc/port-for.conf כך sudo ייתכן שיהיה צורך כדי להפעיל אותו.
שימוש הספרייה
>>> Port_for יבוא
>>> Port_for.select_random ()
37774
>>> Port_for.select_random ()
48,324
>>> 80 בport_for.available_good_ports ()
False
. לחפור לתוך קוד מקור ליותר
דרישות :
- Python
תגובות לא נמצא