#python #python-3.x
#python #python-3.x
Вопрос:
У меня следующий IP-адрес «192.168.2.65»
Есть ли способ преобразовать последние 2 октета в 0.
Я нашел следующее, но это позволяет мне заменить только последний, мне нужно заменить последние 2.
ip = 192.168.2.65
output='.'.join(ip.split('.')[:-1] ["0"])
print(output)
что дает мне 192.168.2.0, и я хотел бы быть 192.168.0.0
Комментарии:
1. Это связано с подсетями? Вы пытаетесь найти сетевой адрес для представленной подсети? Какова логика его изменения
0.0
?
Ответ №1:
Индекс -1
означает последний индекс. Если вы хотите изменить два, измените свой индекс на -2
.
output='.'.join(ip.split('.')[:-2] ["0", "0"])
Ответ №2:
Здесь также можно использовать подход, основанный на регулярных выражениях:
ip = "192.168.2.65"
output = re.sub(r'.d .d
Комментарии:
1. Или вы можете просто заменить в
'.0.0'
качестве замены:re.sub(r'.d .d $', '.0.0', ip)
. Кроме того, не забудьтеimport re
.
Ответ №3:
Зависит от логики, которую вы пытаетесь применить .. если вы просто хотите изменить строку, другие ответы верны.
Однако, если вы хотите получить сетевой адрес для подсети, в которой находится адрес, вы должны правильно обрабатывать адреса и использовать ipaddress
модуль.
Это поможет в вычислении правильных сетевых и широковещательных адресов, а также позволит вам проверять включения в сетях и т. Д.
import ipaddress
interface = IPv4Interface('192.168.2.35/255.255.0.0')
print(interface.network)
#192.168.0.0/16
print(interface.network.network_address)
#192.168.0.0
print(interface.network.broadcast_address)
#192.168.255.255
, '.0.0', ip)
print(output) # prints 192.168.0.0
Комментарии:
1. Или вы можете просто заменить в
'.0.0'
качестве замены:re.sub(r'.d .d $', '.0.0', ip)
. Кроме того, не забудьтеimport re
.
Ответ №3:
Зависит от логики, которую вы пытаетесь применить .. если вы просто хотите изменить строку, другие ответы верны.
Однако, если вы хотите получить сетевой адрес для подсети, в которой находится адрес, вы должны правильно обрабатывать адреса и использовать ipaddress
модуль.
Это поможет в вычислении правильных сетевых и широковещательных адресов, а также позволит вам проверять включения в сетях и т. Д.