Hướng dẫn how do i extract an ip address from a text file in python? - làm cách nào để trích xuất địa chỉ ip từ tệp văn bản trong python?

Hướng dẫn how do i extract an ip address from a text file in python? - làm cách nào để trích xuất địa chỉ ip từ tệp văn bản trong python?

Ngôi sao

Nhúng

Bạn thích làm gì?

Tập lệnh Python nhỏ để kết xuất địa chỉ IP từ một tệp

Tệp này chứa văn bản unicode hai chiều có thể được giải thích hoặc biên dịch khác với những gì xuất hiện dưới đây. Để xem xét, hãy mở tệp trong một trình soạn thảo cho thấy các ký tự Unicode ẩn. Tìm hiểu thêm về các ký tự unicode hai chiều

#!/usr/bin/python3
Nhập khẩu, Re sys, re
f = mở (sys.argv [1], 'r')) = open(sys.argv[1],'r')
Text = f.Read () = f.read()
IPS = [] = []
regex = re.findall (r '\ b (?: \ d {1,3} \.) {3} \ d {1,3} \ b', text) = re.findall(r'\b(?:\d{1,3}\.){3}\d{1,3}\b',text)
ifregexisnotnone: regex is not None:
formatchinregex: match in regex:
ifmatchnotinips: match not in ips:
ips.append (khớp).append(match)
in (khớp)(match)

Lưu trữ dữ liệu văn bản trong một biến ..

Tìm kiếm văn bản cho một chuỗi con ..

Kết hợp các biểu thức thường xuyên ..

Để tất cả chúng cùng nhau..

import re

with open('traffic.txt', 'r') as file:
    fi = file.readlines()
re_ip = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$")
re_port = re.compile("^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$\/(\d+)")

for line in fi:
    ip = re.findall(re_ip,line)
    port = re.findall(re_port,line)
    print port , ip

Làm cách nào để in địa chỉ IP công cộng bằng Python?Sep 8, 2017 at 5:09

5

Làm cách nào để tìm địa chỉ IP công khai của tôi trong Python ?.

import re

with open('traffic.txt', 'r') as file:
    fi = file.readlines()


re_ip = re.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}")
re_port = re.compile("\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}\/(\d+)")

for line in fi:
    port = re.findall(re_port,line)
    ip = re.findall(re_ip,line)
    print "PORT is  " , port , "ip is " ,ip 

Nhập ổ cắm lưu trữ_name = ổ cắm. gethostname () ip_address = ổ cắm ..Sep 8, 2017 at 5:42

Zoro99Zoro99Zoro99

Nhập ổ cắm ip_address = ổ cắm. gethostbyname ("google.com") in (ip_address) #Output: 172.217 ..3 silver badges13 bronze badges

1

Tìm kiếm văn bản cho một chuỗi con ..

jemurray@mbp-2019:~/Documents/scripts/wustlPython $ cat ipsampleinput.txt
This is a text file with ip address: 192.168.1.1 within it, there are more addresses like this one 10.23.12.1
sprinkled throughout the 1.2.3.4 file.  SomeRight10.3.3.2Next to each other some spaced apart.

Kết hợp các biểu thức thường xuyên ..

#!/usr/local/bin/python3

import fileinput
import re

for line in fileinput.input():
    ip = re.findall( r'[0-9]+(?:\.[0-9]+){3}', line )
    if ip:
        for i in ip:
            print(i)

Output:

jemurray@mbp-2019:~/Documents/scripts/wustlPython $ cat ipsampleinput.txt | ./findAllIpAddresses.py
192.168.1.1
10.23.12.1
1.2.3.4
10.3.3.2

Tìm kiếm văn bản cho một chuỗi con ..

Kết hợp các biểu thức thường xuyên ..

Để tất cả chúng cùng nhau..

Làm cách nào để in địa chỉ IP công cộng bằng Python?

Làm cách nào để tìm địa chỉ IP công khai của tôi trong Python ?.
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 01:32 10.20.30.5_post.txt
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 01:33 10.33.10.100_post.txt
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 01:33 172.168.10.3_post.txt
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 01:32 192.168.0.171_post.txt
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 01:32 192.168.0.172_post.txt
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 01:32 192.168.0.186_post.txt
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 01:32 192.168.0.195_post.txt
-rw-rw-r–. 1 jdoe jdoe 0 Jul 13 02:08 987.33.10.100_post.txt

Bây giờ sử dụng các mô -đun Python RE và OS để trích xuất các địa chỉ IP từ mỗi tệp.

Tất cả chỉ cần một vài dòng.

>>> import re
>>> import os

>>> ip for file in os.listdir('.') for ip in re.findall("\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}", file
['192.168.0.171', '192.168.0.172', '192.168.0.186', '192.168.0.195', '10.20.30.5', '10.33.10.100', '172.168.10.3', '010.33.10.100', '987.33.10.100']

Như bạn có thể thấy với biểu thức chính quy lỏng lẻo, chúng tôi vẫn đang chụp hai địa chỉ IP cuối cùng. Chúng tôi chỉ muốn chụp địa chỉ IP IPv4 VAILD.u can see with the loose regular expression, we are still capturing the last two IP addresses. We only want to capture a vaild IPv4 IP addresses.

Nếu bạn khăng khăng sử dụng tệp.

.
[jdoe@centos8 Documents]$ cat extract_ip_from_filenames.py


import os
import re
ip_lst = [ip for file in os.listdir('.') for ip in re.findall("\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}", file)]
print(ip_lst)

. .10.3 ',' 010.33.10.100 ',' 987.33.10.100]]
[‘192.168.0.171’, ‘192.168.0.172’, ‘192.168.0.186’, ‘192.168.0.195’, ‘10.20.30.5’, ‘10.33.10.100’, ‘172.168.10.3’, ‘010.33.10.100‘, ‘987.33.10.100′]

Để thắt chặt biểu thức. Bạn có thể sử dụng biểu thức này có thể được tìm thấy trong cuốn sách Oreily.

Bạn có thể sử dụng Regex đơn giản hoặc chính xác được đề xuất trong cuốn sách.

https://www.oreilly.com/library/view/regular-expressions-cookbook/9780596802837/ch07s16.html

Giải thích về biểu thức chính quy.

\ b (?: [0-9] {1,3}.) {3} [0-9] {1,3} \ b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\B

\ b = không gian (tùy chọn)

\ B = không phải là không gian (tùy chọn)

?: = Nhóm không bắt giữ, điều này có nghĩa là bạn sẽ không bắt được nhóm hàng đầu

[0-9] {1,3} = khớp với bất kỳ số 0-999, nói cách khác, ba chuỗi số 0-9.

[jdoe@centos8 tài liệu] $ cat actact_ip_from_filenames.py


import os
import re
ip_lst = [ip for file in os.listdir('.') for ip in re.findall(r"\b(?:[0-9]{1,3}\.){3}[0-9]{1,3}\B", file)]
print(ip_lst)

. .10.3 ',' 010.33.10.100 ',' 987.33.10.100]]
[‘192.168.0.171’, ‘192.168.0.172’, ‘192.168.0.186’, ‘192.168.0.195’, ‘10.20.30.5’, ‘10.33.10.100’, ‘172.168.10.3’, ‘010.33.10.100‘, ‘987.33.10.100′]

Vâng, điều đó đã không khắc phục các vấn đề của chúng tôi. Có vẻ như chúng ta phải làm thêm một chút công việc.

Phiên bản cuối cùng và cải tiến.

Tôi muốn cải thiện biểu thức đơn giản để thắt chặt biểu thức.

Thay đổi biểu thức như sau.

Giải thích về biểu thức chính quy.

\ b (?: [0-9] {1,3}.) {3} [0-9] {1,3} \ b(?:[1-2]?[0-9]{1,2}\.){3}[1-2]?[0-9]{1,2}\B

\ b = không gian (tùy chọn)

\ B = không phải là không gian (tùy chọn)

?: = Nhóm không bắt giữ, điều này có nghĩa là bạn sẽ không bắt được nhóm hàng đầu

[0-9] {1,3} = khớp với bất kỳ số 0-999, nói cách khác, ba chuỗi số 0-9.

[jdoe@centos8 tài liệu] $ cat actact_ip_from_filenames.py

[jdoe@centos8 tài liệu] $ cat actact_ip_from_filenames.py

import os
import re
ip_lst = [ip for file in os.listdir('.') for ip in re.findall(r"\b(?:[1-2]?[0-9]{1,2}\.){3}[1-2]?[0-9]{1,2}\B", file)]
print(ip_lst)

. .10.3 ',' 010.33.10.100 ',' 987.33.10.100]]
[‘192.168.0.171’, ‘192.168.0.172’, ‘192.168.0.186’, ‘192.168.0.195’, ‘10.20.30.5’, ‘10.33.10.100’, ‘172.168.10.3’]

Vâng, điều đó đã không khắc phục các vấn đề của chúng tôi. Có vẻ như chúng ta phải làm thêm một chút công việc.

Phiên bản cuối cùng và cải tiến.

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 cách nào để trích xuất dữ liệu từ tệp Python?

Cách trích xuất các phần cụ thể của tệp văn bản bằng Python..
Hãy chắc chắn rằng bạn đang sử dụng Python 3 ..
Đọc dữ liệu từ một tệp văn bản ..
Sử dụng "với mở".
Đọc các tệp văn bản theo từng dòng ..
Lưu trữ dữ liệu văn bản trong một biến ..
Tìm kiếm văn bản cho một chuỗi con ..
Kết hợp các biểu thức thường xuyên ..
Để tất cả chúng cùng nhau..

Làm cách nào để in địa chỉ IP công cộng bằng Python?

Làm cách nào để tìm địa chỉ IP công khai của tôi trong Python ?..
Nhập ổ cắm lưu trữ_name = ổ cắm.gethostname () ip_address = ổ cắm ..
Nhập ổ cắm ip_address = ổ cắm.gethostbyname ("google.com") in (ip_address) #Output: 172.217 ..
Nhập ổ cắm lưu trữ_name = ổ cắm.gethostname () ip_address = ổ cắm ..
Nhập ổ cắm ip_address = ổ cắm.gethostbyname ("google.com") in (ip_address) #Output: 172.217 ..

Nhập ổ cắm ip_address = ổ cắm ..

Làm thế nào để bạn chia một địa chỉ IP trong Python?ip_address_split = ip_address. split(".") # By using split function, we can store the given user inputs into four arrays.