Hướng dẫn how do i grep an ip address in python? - làm cách nào để ghi địa chỉ ip trong python?

Xem thảo luận

Cải thiện bài viết

Lưu bài viết

  • Đọc
  • Bàn luận
  • Xem thảo luận

    Cải thiện bài viết

    Lưu bài viết

    Đọc
     

    Bàn luận  

    • Hãy cho chúng tôi xem cách trích xuất địa chỉ IP từ một tệp bằng Python. & NBSP;
    • Thuật toán: & nbsp; & nbsp;
    • Nhập mô -đun lại cho biểu thức chính quy.
    • Mở tệp bằng hàm Open [].
       
    r'[\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}]'
    • Đọc tất cả các dòng trong tập tin và lưu trữ chúng trong một danh sách.
    • Tuyên bố mẫu cho địa chỉ IP. Mẫu regex là: & nbsp; & nbsp;

    Đối với mọi yếu tố của tìm kiếm danh sách cho mẫu bằng hàm search [], hãy lưu trữ địa chỉ IP trong danh sách.
     

    test.txt

    python3

    Hiển thị danh sách chứa địa chỉ IP.

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    3
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    4
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    5
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    6
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    7

    Tệp được xử lý là Test.txt: & nbsp; & nbsp;

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    1
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    2

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    8
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    9
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    1

    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    2
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    4
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    5
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    6
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    7
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    8

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    8
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    7
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    8
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    9

    ['165.91.15.131']
    
    0
    ['165.91.15.131']
    
    1

    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    9
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    1

    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    2
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    3
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    4
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    5valid IP addresses.

    Đầu ra:

    • Chương trình Python ở trên hiển thị bất kỳ loại địa chỉ IP nào có trong tệp. Chúng tôi cũng có thể hiển thị các địa chỉ IP hợp lệ.
    • Quy tắc cho một địa chỉ IP hợp lệ: & nbsp;

    Các số phải nằm trong phạm vi 0-255
     

    Nó nên bao gồm 4 ô được phân tách bằng ‘.

    Biểu thức chính quy cho các địa chỉ IP hợp lệ là: & nbsp;

    [[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]?]

    • Giải thích về biểu thức chính quy được sử dụng cho IP hợp lệ:
    • Vì chúng tôi không thể sử dụng phạm vi 0-255 trong biểu thức chính quy, chúng tôi chia giống nhau thành 3 nhóm:
    • 25 [0-5]-biểu thị số từ 250 đến 255

    2 [0-4] [0-9]-đại diện cho số từ 200 đến 249
     

    test2.txt 

    python3

    Hiển thị danh sách chứa địa chỉ IP.

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    3
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    4
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    5
    ['165.91.15.131']
    
    7
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    7

    Tệp được xử lý là Test.txt: & nbsp; & nbsp;

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    1
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    2

    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    8

    re.findall[r'\b25[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]?\.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]?\b',s]
    
    9
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    1

    ['165', '91', '15', '131']
    
    2
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    1

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    8
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    9
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    1

    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    2
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    4
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    5
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    6
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    7
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    8

    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    9
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    1

    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    2
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    3
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    4
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    5

    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    
    0
    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    
    1

    ['165', '91', '15', '131']
    
    9
    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    
    3
    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    
    4

    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    
    0
    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    
    6

    ['165.91.15.131']
    
    0
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    5
    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    
    9
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    8

    ['165.91.15.131']
    
    0
     s = "Current IP CheckCurrent IP Address: 165.91.15.131"
     info = re.findall[r'[\d.-]+', s]
    
    2

    ['165.91.15.131']
    
    0
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    5
     s = "Current IP CheckCurrent IP Address: 165.91.15.131"
     info = re.findall[r'[\d.-]+', s]
    
    5
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    8

    ['165.91.15.131']
    
    0
     s = "Current IP CheckCurrent IP Address: 165.91.15.131"
     info = re.findall[r'[\d.-]+', s]
    
    8

    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    9
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0
    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    
    1


    27

    Mới! Lưu câu hỏi hoặc câu trả lời và sắp xếp nội dung yêu thích của bạn. Tìm hiểu thêm.
    Learn more.

    Tôi muốn trích xuất một địa chỉ IP từ một chuỗi [thực ra là HTML một dòng] bằng Python.

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    

    - '165.91.15.131' là những gì tôi muốn!

    Tôi đã thử sử dụng các biểu thức thông thường, nhưng cho đến nay tôi chỉ có thể đến số đầu tiên.

    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    

    Nhưng tôi không nắm bắt được biểu hiện reg; Mã trên đã được tìm thấy và sửa đổi từ nơi khác trên web.

    Tylerh

    21.2K59 Huy hiệu vàng74 Huy hiệu bạc93 Huy hiệu đồng59 gold badges74 silver badges93 bronze badges

    Khi được hỏi ngày 23 tháng 5 năm 2010 lúc 6:57May 23, 2010 at 6:57

    1

    Xóa nhóm bắt giữ của bạn:

    ip = re.findall[ r'[0-9]+[?:\.[0-9]+]{3}', s ]
    

    Result:

    ['165.91.15.131']
    

    Notes:

    • Nếu bạn đang phân tích cú pháp HTML, đó có thể là một ý tưởng tốt để xem đẹp.
    • Biểu thức chính quy của bạn phù hợp với một số địa chỉ IP không hợp lệ như
       s = "Current IP CheckCurrent IP Address: 165.91.15.131"
       info = re.findall[r'[\d.-]+', s]
      
      9. Đây không nhất thiết là một vấn đề, nhưng bạn nên biết về nó và có thể xử lý tình huống này. Bạn có thể thay đổi
      >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
      
      00 thành
      >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
      
      01 để sửa chữa một phần mà không làm cho biểu thức thông thường quá phức tạp.

    Đã trả lời ngày 23 tháng 5 năm 2010 lúc 7:02May 23, 2010 at 7:02

    Mark Byersmark ByersMark Byers

    784K186 Huy hiệu vàng1552 Huy hiệu bạc1440 Huy hiệu đồng186 gold badges1552 silver badges1440 bronze badges

    3

    Bạn có thể sử dụng Regex sau để chỉ chụp địa chỉ IP hợp lệ

    re.findall[r'\b25[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]?\.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]?\b',s]
    

    trả lại

    ['165', '91', '15', '131']
    

    Đã trả lời ngày 23 tháng 5 năm 2010 lúc 7:11May 23, 2010 at 7:11

    SnehalsnehalSnehal

    6,9262 Huy hiệu vàng31 Huy hiệu bạc40 Huy hiệu đồng2 gold badges31 silver badges40 bronze badges

    1

    import re
    
    ipPattern = re.compile['\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}']
    
    findIP = re.findall[ipPattern,s]
    
    findIP contains ['165.91.15.131']
    

    JDOTJDOT

    15.5K12 Huy hiệu vàng63 Huy hiệu bạc116 Huy hiệu đồng12 gold badges63 silver badges116 bronze badges

    Đã trả lời ngày 7 tháng 1 năm 2013 lúc 5:24Jan 7, 2013 at 5:24

    Rambo7Rambo7Rambo7

    1.13510 Huy hiệu bạc17 Huy hiệu đồng10 silver badges17 bronze badges

    Bạn có thể sử dụng Regex sau để trích xuất IP hợp lệ mà không có lỗi sau 1. Một số đã phát hiện

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    02 vì IP hợp lệ 2. Một số không phát hiện
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    03 vì IP hợp lệ 3. Một số không phát hiện IP bắt đầu bằng 0 như
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    04
    1.Some detected
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    02 as valid IP
    2.Some don't detect
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    03 as valid IP
    3.Some don't detect IP that start with zero like
    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    04

    Vì vậy, ở đây tôi đăng một regex hoạt động trên tất cả các điều kiện trên.

    Lưu ý: Tôi đã trích xuất hơn 2 triệu IP mà không gặp vấn đề gì với Regex sau.

    [?:[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]\.]{3}[?:1\d\d|2[0-5][0-5]|2[0-4]\d|0?[1-9]\d|0?0?\d]
    

    Đã trả lời ngày 13 tháng 3 năm 2018 lúc 8:11Mar 13, 2018 at 8:11

    Mohsen Sarkarmohsen SarkarMohsen Sarkar

    5.7907 Huy hiệu vàng44 Huy hiệu bạc85 Huy hiệu Đồng7 gold badges44 silver badges85 bronze badges

    2

    Cách dễ nhất để tìm địa chỉ IP từ nhật ký ..

     s = "Current IP CheckCurrent IP Address: 165.91.15.131"
     info = re.findall[r'[\d.-]+', s]
    

    Trong [42]: thông tin

    Ra [42]: ['165.91.15.131']

    Đã trả lời ngày 17 tháng 8 năm 2015 lúc 3:54Aug 17, 2015 at 3:54

    2

    Đây là cách tôi đã làm nó. Tôi nghĩ nó rất sạch sẽ

    >>> s = "Current IP CheckCurrent IP Address: 165.91.15.131"
    
    0

    get_ip [] trả về IP thành một chuỗi hoặc không có

    Bạn có thể thay thế Địa chỉ_REGEXP cho các biểu thức thông thường khác nếu bạn thích phân tích cú pháp chính xác hơn hoặc có thể thay đổi nhà cung cấp dịch vụ web.

    Đã trả lời ngày 21 tháng 1 năm 2013 lúc 19:23Jan 21, 2013 at 19:23

    Gonzalo Caogonzalo CaoGonzalo Cao

    2.1661 Huy hiệu vàng21 Huy hiệu bạc17 Huy hiệu đồng1 gold badge21 silver badges17 bronze badges

    Làm cách nào để grep địa chỉ IP hợp lệ trong Python?

    Quy tắc cho một địa chỉ IP hợp lệ: Các số phải nằm trong phạm vi 0-255 ...
    25 [0-5]-đại diện cho các số từ 250 đến 255 ..
    2 [0-4] [0-9]-đại diện cho các số từ 200 đến 249 ..
    [01]? [0-9] [0-9]?-đại diện cho các số từ 0 đến 199 ..

    Làm thế nào để tôi grep một IP?

    Trong Linux, bạn có thể sử dụng các biểu thức thông thường với GREP để trích xuất địa chỉ IP từ một tệp. Lệnh GREP có tùy chọn -E [Regex mở rộng] để cho phép nó diễn giải một mẫu như một biểu thức chính quy mở rộng.use regular expressions with grep to extract an IP address from a file. The grep command has the -E [extended regex] option to allow it to interpret a pattern as a extended regular expression.

    Làm thế nào để bạn theo dõi một địa chỉ IP trong Python?

    Algorithm..
    Nhập mô -đun ổ cắm ..
    Nhận tên máy chủ bằng cách sử dụng ổ cắm.phương thức gethostname [] và lưu trữ nó trong một biến ..
    Tìm địa chỉ IP bằng cách chuyển tên máy chủ dưới dạng đối số cho ổ cắm.phương thức gethostbyname [] và lưu trữ nó trong một biến ..

    Làm thế nào để bạn kiểm tra xem một chuỗi là địa chỉ IP trong Python?

    Làm cách nào để xác thực một địa chỉ IP trong Python?Cách đơn giản nhất để xác thực nếu một chuỗi biểu thị địa chỉ IP là bằng cách sử dụng mô -đun iPaddress Python.Hãy mở vỏ Python và xem iPaddress là gì.Hàm ip_address [] trả về khi chúng tôi chuyển đến các chuỗi biểu thị địa chỉ IPv4 hợp lệ và không hợp lệ.using the Python ipaddress module. Let's open the Python shell and see what the ipaddress. ip_address[] function returns when we pass to it strings that represent a valid and an invalid IPv4 address.

    Bài Viết Liên Quan

    Chủ Đề