Найти - Пользователи
Полная версия: Ввести IP-адресс с клавиатуры, чтобы потом и подключиться к этому хосту
Начало » Python для новичков » Ввести IP-адресс с клавиатуры, чтобы потом и подключиться к этому хосту
1
ste1n88
Очень нужна помощь. Уже не знаю, что и думать. Работаю с сокетами. Хочу написать код, чтобы можно было ввести IP-адрес, к которому потом можно было подключиться. Код такой:

#!/usr/bin/env python
# -*- coding: utf-8 -*-

import ipaddress
addr = input (“адрес ИП-адрес :”) # Ввод ИП-адреса - выдаёт ошибку
int_port = input (“введите PORT хоста: ”) # Ввод порта - нормально работает

import socket

sock2 = socket.socket()
sock2.connect((addr,int_port)) # здесь в скобках ИП-адрес и порт хоста, к которому подключиться нужно

Ошибка такая:

адрес ИП :192.168.0.86
Traceback (most recent call last):
File “./sock-client.py”, line 6, in <module>
str_addr = input (“адрес ИП :”)
File “<string>”, line 1
192.168.0.86
^
SyntaxError: invalid syntax

FishHook
во втором питоне используйте raw_input для ввода нечисловых значений
ste1n88
Спасибо Вам огромное. Помогло. Тогда ещё вопрос. В третьем Питоне как быть? Там вот такая ошибка:

адрес ИП :192.168.0.86
введите PORT хоста: 9090
Traceback (most recent call last):
File “./sock-client.py”, line 12, in <module>
sock2.connect((int_addr,int_port))
TypeError: an integer is required (got type str)
Error in sys.excepthook:
Traceback (most recent call last):
File “/usr/lib/python3/dist-packages/apport_python_hook.py”, line 63, in apport_excepthook
from apport.fileutils import likely_packaged, get_recent_crashes
File “/usr/lib/python3/dist-packages/apport/__init__.py”, line 5, in <module>
from apport.report import Report
File “/usr/lib/python3/dist-packages/apport/report.py”, line 12, in <module>
import subprocess, tempfile, os.path, re, pwd, grp, os, time
File “/usr/lib/python3.5/tempfile.py”, line 184, in <module>
from random import Random as _Random
File “/home/test/programming/Python/random.py”, line 3
print random.randint(1,10)
^
SyntaxError: invalid syntax

Original exception was:
Traceback (most recent call last):
File “./sock-client.py”, line 12, in <module>
sock2.connect((int_addr,int_port))
TypeError: an integer is required (got type str)
FishHook
приводить строку к целочисленному
int(“6254654”)
ste1n88
то есть как именно? и как потом обратно?
вот так делать:
int(addr) = input (“адрес ИП :”)
port = input (“введите PORT хоста: ”)
sock2.connect((addr,port))
Напишите, пожалуйста, точнее. Я не совсем понимаю.
marvellik
если я не ошибаюсь то порт должен быть числом
 addr = input (“адрес ИП :)
port = int(input (“введите PORT хоста: ))
ste1n88
там есть такое:
int_port = input (“введите PORT хоста: ”)
и это работает. Просто port = input… не работало, а int_port = input… работает
marvellik
ste1n88
port = input… не работало, а int_port = input… работает
разница только в имени переменной port и int_port но вы задали вопрос относительно port
ste1n88
то есть как именно? и как потом обратно?
вот так делать:
int(addr) = input (“адрес ИП :”)
port = input (“введите PORT хоста: ”)
sock2.connect((addr,port))
а пытаетесь возможно запустить в коде где переменная используется int_port.
'''с помощью функции connect, которая принимает этот самый хост (IP-адрес или можно сразу обычный адрес буквами написать) и порт.
conn.connect( (“127.0.0.1”, 14900) )''' и разница в версиях питона тоже имеет значение в 2-ом int_port = input() в переменной число, в 3-ем int_port = input()-строка, int_port = int(input())-число
ste1n88
Всё. Разобрался. Частично ответы всех участников помогли. Всем спасибо))
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB