Hướng dẫn get ip from string python - lấy ip từ chuỗi python

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 thông thường của bạn phù hợp với một số địa chỉ IP không hợp lệ như
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    0. Đâ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
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    1 thành
    >>> import re
    >>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
    >>> ip
    ['165']
    
    2 để sử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

784K187 Huy hiệu vàng1552 Huy hiệu bạc1440 Huy hiệu đồng187 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

>>> import re
>>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
>>> ip
['165']
3 vì IP hợp lệ 2. Một số không phát hiện
>>> import re
>>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
>>> ip
['165']
4 vì IP hợp lệ 3. Một số không phát hiện IP bắt đầu bằng 0 như
>>> import re
>>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
>>> ip
['165']
5
1.Some detected
>>> import re
>>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
>>> ip
['165']
3 as valid IP
2.Some don't detect
>>> import re
>>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
>>> ip
['165']
4 as valid IP
3.Some don't detect IP that start with zero like
>>> import re
>>> ip = re.findall[ r'[[0-9]+][?:\.[0-9]+]{3}', s ]
>>> ip
['165']
5

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ẽ

import re
import urllib2

def getIP[]:
    ip_checker_url = "//checkip.dyndns.org/"
    address_regexp = re.compile ['\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}']
    response = urllib2.urlopen[ip_checker_url].read[]
    result = address_regexp.search[response]

    if result:
            return result.group[]
    else:
            return None

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 để trích xuất một địa chỉ IP từ một văn bản trong Python?

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 ...
Nhập mô -đun lại cho biểu thức chính quy ..
Mở tệp bằng hàm Open [] ..
Đọc tất cả các dòng trong tệp và lưu trữ chúng trong danh sách ..
Tuyên bố mẫu cho địa chỉ IP. Mẫu regex là:.

Làm cách nào để kéo IP trong Python?

Lập trình đơn giản..
Nhập ổ cắm ..
hostname=socket.gethostname[].
IPAddr=socket.gethostbyname[hostname].
in ["Tên máy tính của bạn là:"+tên máy chủ].
In ["Địa chỉ IP máy tính của bạn là:"+iPaddr].

Làm cách nào để trích xuất một địa chỉ IP từ một tệp văn bản?

Làm cách nào để trích xuất IP từ văn bản ?..
Mở công cụ trích xuất IP trực tuyến miễn phí ..
Nhập văn bản chứa IPS.Công cụ hỗ trợ cả địa chỉ IPv4 và IPv6 ..
Sau khi nhập văn bản, nhấp vào nút "Trích xuất IPS" ..
Công cụ sẽ trích xuất tất cả các trường hợp của địa chỉ IP từ văn bản và cung cấp cho bạn kết quả mong muốn ..

Làm thế nào để bạn kiểm tra xem một chuỗi là IP hợp lệ?

Nhập RE.Def Valid_ip_address [sample_str]: '' 'Trả về true nếu chuỗi được đưa ra là a.Địa chỉ IP hợp lệ, khác trả về sai '' '....
Nhập iPaddress.def is_valid_ipaddress [sample_str]: '' 'trả về true nếu chuỗi cho là a.....
Nhập ổ cắm.def is_valid_ip_address [ip_str]: '' 'trả về true nếu chuỗi đưa ra là a ..

Bài Viết Liên Quan

Chủ Đề