Я запускаю freeSSHd на win XP в качестве SSH-сервера, и он возвращает CMD-оболочку для аутентифицированных пользователей, и я хочу получить результат отправки команды ipconfig автоматически при запуске python, я получил соединение, но у меня есть проблема с чтением результата для каждого поля и помещением его в отдельную переменную, результат для моего кода - «4» вместо «10»> первая цифра в IP-адресе, Не знаю, откуда взялось число 4. Есть идеи?Чтение 'ipconfig' с Python-Pexpect
Выход Win XP IpConfig
C: \ Documents и Settings \ Hussam \ Desktop> IPCONFIG
Windows IP Configuration
Ethernet adapter Local Area Connection:
Connection-specific DNS Suffix . :
IP Address. . . . . . . . . . . . : 10.0.2.10
Subnet Mask . . . . . . . . . . . : 255.255.255.0
Default Gateway . . . . . . . . . : 10.0.2.15
C:\Documents and Settings\hussam\Desktop>
Мой код
import pexpect
import re
def sendcommand(conn,command):
conn.sendline(command)
conn.expect('\d')
print conn.after
def c(ip,username,password):
global conn
ft = 'ssh '+username+'@'+ip
print 'we are trying to connect to ' + ft
new = 'Are you sure you want to continue connecting'
conn = pexpect.spawn(ft)
result = conn.expect([ pexpect.TIMEOUT , new ,'[P|p]assword:' ])
if result == 0:
print 'connection error'
return
if result == 1:
conn.sendline('yes')
result = conn.expect([ pexpect.TIMEOUT , '[P|p]assword:'])
if result == 0:
print 'connection error'
return
conn.sendline(password)
conn.expect('>')
sendcommand(conn,command)
def main():
global command
username = 'hkhrais'
ip = '10.0.2.10'
password = 'hkhrais'
command = ' ipconfig'
c(ip,username,password)
main()
Ar e вы пытаетесь разобрать вывод ipconfig? Где ваш код? – ATOzTOA
Да, например, я хочу поместить результат IP-адреса в переменную x и маску подсети в y и т. Д., Остальная часть кода работает нормально и она предназначена для инициирования соединения SSH – Hussam
Где код, который вы используете для проанализировать данные? – ATOzTOA