2017-01-28 19 views
0

Я хочу закодировать приложение, которое поможет мне определить класс IP и отредактировать его, как если бы я использовал IP-класс «10.0.0.0», с маской подсети 255.0.0.0 Я хочу, чтобы пользовательский ввод его IP и маску подсети, как описано выше, и я делаю уравнение, чтобы сообщить ему, сколько IP-адресов, он может использовать, во время моего поиска я получил этот кодХранить IP-адрес и маску подсети в переменной и редактировать на ней в Python

import sys 

sys.stdout.write("Enter IP address: ") 
sys.stdout.flush() 
ip = sys.stdin.readline() 
print("you entered: " + ip) 

но когда Я использую его, я не мог делать какие-либо изменить на внутрибрюшинно этим кодом

import sys 

sys.stdout.write("Enter IP address: ") 
sys.stdout.flush() 
ip = sys.stdin.readline() 
a = ip + 1 
print("you entered: " + ip + "and your IP will be : " + a) 

это показывает, что сообщение об ошибке: TypeError: должна быть улица, не int

Наконец, я хочу, чтобы это число применимо для редактирования на нем, и любезно объясните, что вы код, который поможет мне правильно разобраться. заранее спасибо

+0

'sys.stdin.readline()' возврата строки. Вы не можете добавить целое число ('1') в строку (' ip'). И почему вы не используете 'input()'? –

+0

Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/9539006/python-increment-ipaddress) –

+0

, так что я должен использовать вместо sys.stdin.readline()? и если я использовал вход, как я могу хранить xxx.xxx.xxx.xxx в нем? Я знаю, что ввод должен получить тип переменной, такой как int или string или float ... и т. Д. –

ответ

0

С Python 3.3 вы можете использовать ipaddress — IPv4/IPv6 manipulation library

import sys 
import ipaddress 

sys.stdout.write("Enter IP address: ") 
sys.stdout.flush() 
ip = sys.stdin.readline().strip() # remove the trailing '\n' 
assigned_ip = ipaddress.IPv4Address(ip) + 1 
print("You entered: " + ip + " and your IP will be: " + str(assigned_ip)) 

Выход:

Enter IP address: 192.168.1.0 
You entered: 192.168.1.0 and your IP will be: 192.168.1.1 
+0

вы такой гений Я хочу дать вам больше миллиона, как :) Я использовал ваш код, и он работает правильно, большое вам спасибо. –