У меня есть таблица с 'State'
и соответствующий диапазон CIDR IP, связанный с этим состоянием.
ТАБЛИЦА A
--------------------------------------------------
| ID | State | IP_subnet |
--------------------------------------------------
| 1 | CA | 192.168.1.0/24 |
--------------------------------------------------
| 2 | TX | 172.68.7.0/24 |
--------------------------------------------------
| 3 | NY | 61.141.47.0/24 |
--------------------------------------------------
Я хотел бы повторить через таблицу ниже и сопоставьте поле IP
с полем IP_subnet
.
ТАБЛИЦА B
| ID | IP |
--------------------------------------
| 1 | 61.141.47.1 |
--------------------------------------
| 2 | 192.168.1.48 |
--------------------------------------
| 3 | 172.68.7.124 |
--------------------------------------
| 4 | 40.32.123.212 |
--------------------------------------
Ниже приведены результаты, к которым я стремлюсь: (сопоставление связанного State
с IP
)
| ID | IP | State |
--------------------------------------------------
| 1 | 61.141.47.1 | null |
--------------------------------------------------
| 2 | 192.168.1.48 | CA |
--------------------------------------------------
| 3 | 172.68.7.124 | TX |
--------------------------------------------------
| 4 | 40.32.123.212 | NY |
--------------------------------------------------
Я знаю, что приведенный ниже код будет работать для 1 значения. Как перебрать столбец IPs
против другого?
from ipaddress import IPv4Address, IPv4Network
IPv4Address('172.68.7.124') in IPv4Network('172.68.7.0/24')
FYi
- 192.168.1.0 / 24 == диапазон [192.168.1.0 - 192.168.1.255 ]
- 172.68.7.0 / 24 == range [172.68.7.0 TO 172.68.7.255]
инициализировать список списков
data = [[1, ' CA ',' 192.168.1.0/24 '], [2,' TX ',' 172.68.7.0/24 '], [' juli ', 14], [3, NY, 61.141.47.0/24]]
Создать pandas DataFrame
df = pd.DataFrame (данные, столбцы = ['ID', 'State', 'IP_su bnet'])