ווטסאפ - לינוקס, BSD, קוד פתוח ותוכנה חופשית בעברית. Whatsup - Linux, BSD, open source and free software in Hebrew

 
 
  כניסת חברים · רישום · שכחתי סיסמה  
tux the penguin
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
COM64לא בפורום כעת ת.הצטרפות: 09/07/2003 · הודעות: 1605 · מיקום: ראשל"צ
 

הודעה פורסם: 17/05/2021 - 14:13
נושא ההודעה: הכוונה עם Regex שעובד עם search ופחות עם findall

הי, אני מנסה למצא כתובות IP חוקיות בתוך טקסט, ה-patern הבא עושה את העבודה כשאני משתמש ב-re.search:
קוד:
((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)


לעומת זאת כשאני מנסה למצא את כל הכתובות בבמחרוזה נתונה על ידי שימוש ב-re.findall, אני מקבל פלט לא רלוונטי:

קוד:
re.search(r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", "192.168.0.1 10.0.0.1")
<re.Match object; span=(0, 11), match='192.168.0.1'>
re.findall(r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)", "192.168.0.1 10.0.0.1")
[('0.', '0', '1'), ('0.', '0', '1')]


כותב בפייתון אם זה רלוונטי.

_________________
איזי גולדנברג
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 17/05/2021 - 15:09
נושא ההודעה:

זה נראה שהוא לא מסתדר טוב עם ה {3} (ההנחיה לחפש שלוש פעמים)

קוד:

>>> re.findall(r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){1}", "192.168.0.1 10.0.0.1")
[('192.', '192'), ('168.', '168'), ('0.', '0'), ('10.', '10'), ('0.', '0'), ('0.', '0')]



קוד:

>>> re.findall(r"((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){2}", "192.168.0.1 10.0.0.1")
[('168.', '168'), ('0.', '0')]


זה מעניין, למרות שאם המטרה אבטחת מידע - לבדוק שמה שנתקבל הוא באמת ip
לא עדיף לעשות split
ואז לבדוק שהרווח הוא ספייס ובין הנקודות יש רק מספרים?
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
COM64לא בפורום כעת ת.הצטרפות: 09/07/2003 · הודעות: 1605 · מיקום: ראשל"צ
 

הודעה פורסם: 17/05/2021 - 15:34
נושא ההודעה:

אם אני מבין אותך נכון, אני מוודא שהכתובת חוקית, כלומר לא מופיע לדוגמה 256.

_________________
איזי גולדנברג
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 17/05/2021 - 19:26
נושא ההודעה:

כן
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 17/05/2021 - 19:35
נושא ההודעה:

כל מה שקשור אבטחת מידע אני תמיד מעתיק מאן שהוא- על פני לכתוב לבד,
אני מניח של ip וולידציה אפשר להעתיק מפו

https://www.tutorialspoint.com/validate-ip-address-in-python

לדברים יותר מורכבים - עדיף סיפריות מוכנות של anti-semi
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
COM64לא בפורום כעת ת.הצטרפות: 09/07/2003 · הודעות: 1605 · מיקום: ראשל"צ
 

הודעה פורסם: 18/05/2021 - 16:22
נושא ההודעה:

Anonymous :
כל מה שקשור אבטחת מידע אני תמיד מעתיק מאן שהוא- על פני לכתוב לבד,
אני מניח של ip וולידציה אפשר להעתיק מפו

https://www.tutorialspoint.com/validate-ip-address-in-python

לדברים יותר מורכבים - עדיף סיפריות מוכנות של anti-semi


מה שאני מחפש זה Regex שמזהה כתובת IP תקינה, כלומר רצף של 4 מספרים בין 0 ל-255 מופרדים על ידי 3 נקודות.
בקישור שצרפת אני יכול להזין String ולקבל תשובה אם הוא תקין ככתובת IP.

_________________
איזי גולדנברג
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10408 · מיקום: כדור הארץ
 

הודעה פורסם: 18/05/2021 - 16:50
נושא ההודעה:

עטוף הכל בסוגריים, אז התוצאה הראשונה של כל tuple ברשימה ש-findall תחזיר לך תהיה הכתובת.

בכל מקרה, נראה שה-regex עצמו לא טוב, מאחר והוא תופס גם דברים אחרים, דוגמה:
קוד:

In [4]: re.findall(r"(((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){,3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?))", "192.168.0.1 asd sdg sd 3245  10.0.0.1")
Out[4]:
[('192.168.0.1', '0.', '0', '1'),
 ('32', '', '', '32'),
 ('45', '', '', '45'),
 ('10.0.0.1', '0.', '0', '1')]


_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
COM64לא בפורום כעת ת.הצטרפות: 09/07/2003 · הודעות: 1605 · מיקום: ראשל"צ
 

הודעה פורסם: 18/05/2021 - 18:05
נושא ההודעה:

תודה מאיר.

מישהו מכיר Regex שפועל כמו שצריך ומזהה כתובת IP? הגיוני שכבר מישהו שבר את הראש על זה וכתב אחד שמחזיר רשימה עם כל הכתובת ב-String

_________________
איזי גולדנברג
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
אורח · ·
 

הודעה פורסם: 18/05/2021 - 20:58
נושא ההודעה:

אם מעניין אותך ipv4 אופי תפרק עם re.split לפי '.'

ותכתוב פונקציה שתקבל 4 ארגומנטים ותבדוק אותם
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
mksoftלא בפורום כעתSite Admin ת.הצטרפות: 17/03/2002 · הודעות: 10408 · מיקום: כדור הארץ
 

הודעה פורסם: 26/05/2021 - 16:18
נושא ההודעה:

אולי זה?
https://ihateregex.io/expr/ip/

למקרה והקישור יעלם:
קוד:

(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)(\.(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)){3}

_________________
הבלוג שלי
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית שלח דוא\ ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
צפריראורח · ·
 

הודעה פורסם: 26/05/2021 - 17:02
נושא ההודעה:

כמעט. זה מקבל גם את הכתובת 000.000.000.000 .
 
   
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
COM64לא בפורום כעת ת.הצטרפות: 09/07/2003 · הודעות: 1605 · מיקום: ראשל"צ
 

הודעה פורסם: 26/05/2021 - 18:48
נושא ההודעה:

צפריר :
כמעט. זה מקבל גם את הכתובת 000.000.000.000 .


תכלס זו כתובת IP חוקית להגדרה של כתובת IP לא חוקית Smile
https://en.wikipedia.org/wiki/0.0.0.0

_________________
איזי גולדנברג
 
 צפיה בפרופיל המשתמש שלח הודעה פרטית ביקור באתר המפרסם  
תגובה  עם ציטוט חזרה למעלה
חזרה לתוכן הדיון
הצגת הודעות מלפני:     
מעבר אל:  
כל הזמנים הם GMT + 2 שעות
תגובה לנושא
צפיה בנושא הבא Printable version התחבר כדי לבדוק הודעות פרטיות צפיה בנושא הקודם
PNphpBB2 © 2003-2004 

תוכן הדיון

  1. COM64
  2. אורח
  3. COM64
  4. אורח
  5. אורח
  6. COM64
  7. mksoft
  8. COM64
  9. אורח
  10. mksoft
  11. אורח [צפריר]
  12. COM64