2015-06-16 32 views
0

在Lua中,我下載了LuaSocket庫,然後我試圖:使用telnet 如何在Lua中使用套接字進行遠程登錄?

  • 發送一些命令,從命令
  • 接收輸出解析後
  • 密切的telnet
    1. 連接

      我在做這個沒有做這項工作的代碼做錯了什麼?

      local socket = require("socket") 
      conn = socket.tcp() 
      conn:connect("IP Address",23) 
      conn:send("password") 
      conn:send("enable") 
      conn:send("password2") ;; above was all login procedure 
      conn:send("sh run interfaces ethernet 16") 
      var1 = conn:receive('*l') 
      print (var1) 
      

      我想到這給我的第一行代碼由SH運行接口以太網16命令打印出來,但我得到的是2 :) 2V開方:)開方< 3 ...也就是說,四個隨機符號,我不知道他們的意思。

      任何幫助我在這裏做錯了將不勝感激,謝謝。

      這裏是那些四個符號:enter image description here

    +0

    'telnet'不是純文本協議。在那條線後面你會得到什麼?如果你conn:在那個時候接收(「* a」),你會得到什麼? –

    +0

    當我輸入conn時,它通常會凍結:接收(「* a」),雖然我沒有讓它去很長一段時間,並且在這個sh run中有很多單詞。我會再試一次,讓它有時間讓你知道。那麼如何將符號轉換爲純文本呢? –

    +0

    '「* a」'可能會掛起,所以試着讀第二行,看看你是否也有數據。你不要轉換它。它沒有編碼。它不僅僅是文字。在telnet協議中有非文本控制的東西。 –

    回答

    0

    更新:對於所有誰是好奇,我需要\ r進行命令都放在單獨的行,而且我不得不把睡眠時間在每個命令之間,系統將有時間在它們之間加載。然後它完美地工作。