openresty nginx+lua利用socket 進(jìn)行telnet操作

最近由于要實現(xiàn)telnet到交換機(jī)撑蒜,對交換機(jī)進(jìn)行一些操作,寫靜態(tài)路由等。于是研究了一下socket如何操作交換機(jī)旁涤,發(fā)現(xiàn)了利用socket連接交換機(jī)進(jìn)行操作還是挺簡單的翔曲。(其實不止可以進(jìn)行telnet,還可以連接任何鏈接劈愚,當(dāng)然有些需要自己定義協(xié)議瞳遍。我自己也是懂點皮毛,還請大神指教一下)

下面我們來說點干貨吧

首先是利用nginx自帶的socket模塊菌羽,通過ip掠械、端口連接,當(dāng)然交換機(jī)的默認(rèn)端口是23

定義一個sock對象注祖,然后利用這個sock連接到指定的ip份蝴,端口

local sock = ngx.socket.tcp()

設(shè)定超時時間,這個超時是發(fā)送時的超時時間氓轰,如果你發(fā)送的數(shù)據(jù)在設(shè)定的時間內(nèi)還沒有以'\n'結(jié)尾或者緩沖區(qū)(行緩沖)還沒滿就會超時婚夫。

sock:settimeout(15000)

local ok,err = sock:connect("你要連接的ip","對應(yīng)的端口(交換機(jī)默認(rèn)是23)")

如果用過命令行telnet的朋友都知道(這里說的是交換機(jī)),當(dāng)你telnet進(jìn)去之后就會彈出讓你輸入賬號(當(dāng)然如果你關(guān)閉的認(rèn)證就不需要)署鸡,輸完用戶名輸密碼案糙。然后就可以進(jìn)行交換機(jī)操作了。

sock:send("test\r\n") -- 賬號

sock:send("123456\r\n") -- 密碼

下面幾句是進(jìn)入到用戶模式靴庆,然后創(chuàng)建一個用戶

sock:send("sys\r\n")

sock:send("aaa\r\n")

sock:send("local-user test password simple 123456\r\n")

你可以直接這樣關(guān)閉連接退出时捌,也可以自己發(fā)送退出命令退出交換機(jī)

sock:close()

值得一說的是

我這里是沒有接收它返回的任何數(shù)據(jù),你要接收數(shù)據(jù)可以用sock:receive(參數(shù))這個方法炉抒,不過這個方法你要寫你接收數(shù)據(jù)的長度奢讨,我看網(wǎng)上說是每個返回的數(shù)據(jù)都有報文頭,里面有寫數(shù)據(jù)的大小是多少焰薄,接收報文頭傳的數(shù)據(jù)大小是4拿诸,不過我這個返回的數(shù)據(jù)是需要自己解碼的。有興趣的朋友可以自己去試試塞茅,你也可以傳"*l"進(jìn)去亩码,表示接收一行的數(shù)據(jù),你可以連續(xù)接收幾行野瘦,可以看到有數(shù)據(jù)返回的描沟。

最后再說一下,用過socket的都知道socket的強(qiáng)大鞭光,因為任何連接的底層都是通過socket連接的吏廉。你也可以試試用socket連接數(shù)據(jù)庫,我看過了一個別人用socket連接數(shù)據(jù)庫的庫惰许,跟我上面連接交換機(jī)的差不多席覆,問題是你要怎么輸入用戶和密碼,而且它的密碼是要加密后的密碼啡省,還有里面涉及到了很多編碼的問題娜睛。有興趣的朋友可以去研究一下髓霞,或者大家一起交流交流一下經(jīng)驗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末畦戒,一起剝皮案震驚了整個濱河市方库,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌障斋,老刑警劉巖纵潦,帶你破解...
    沈念sama閱讀 217,542評論 6 504
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異垃环,居然都是意外死亡邀层,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,822評論 3 394
  • 文/潘曉璐 我一進(jìn)店門遂庄,熙熙樓的掌柜王于貴愁眉苦臉地迎上來寥院,“玉大人,你說我怎么就攤上這事涛目〗招唬” “怎么了?”我有些...
    開封第一講書人閱讀 163,912評論 0 354
  • 文/不壞的土叔 我叫張陵霹肝,是天一觀的道長估蹄。 經(jīng)常有香客問我,道長沫换,這世上最難降的妖魔是什么臭蚁? 我笑而不...
    開封第一講書人閱讀 58,449評論 1 293
  • 正文 為了忘掉前任,我火速辦了婚禮讯赏,結(jié)果婚禮上垮兑,老公的妹妹穿的比我還像新娘。我一直安慰自己待逞,他們只是感情好甥角,可當(dāng)我...
    茶點故事閱讀 67,500評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著识樱,像睡著了一般。 火紅的嫁衣襯著肌膚如雪震束。 梳的紋絲不亂的頭發(fā)上怜庸,一...
    開封第一講書人閱讀 51,370評論 1 302
  • 那天,我揣著相機(jī)與錄音垢村,去河邊找鬼割疾。 笑死,一個胖子當(dāng)著我的面吹牛嘉栓,可吹牛的內(nèi)容都是我干的宏榕。 我是一名探鬼主播拓诸,決...
    沈念sama閱讀 40,193評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼麻昼!你這毒婦竟也來了奠支?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,074評論 0 276
  • 序言:老撾萬榮一對情侶失蹤抚芦,失蹤者是張志新(化名)和其女友劉穎倍谜,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體叉抡,經(jīng)...
    沈念sama閱讀 45,505評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡尔崔,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,722評論 3 335
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了褥民。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片季春。...
    茶點故事閱讀 39,841評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖消返,靈堂內(nèi)的尸體忽然破棺而出鹤盒,到底是詐尸還是另有隱情,我是刑警寧澤侦副,帶...
    沈念sama閱讀 35,569評論 5 345
  • 正文 年R本政府宣布侦锯,位于F島的核電站,受9級特大地震影響秦驯,放射性物質(zhì)發(fā)生泄漏尺碰。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,168評論 3 328
  • 文/蒙蒙 一译隘、第九天 我趴在偏房一處隱蔽的房頂上張望亲桥。 院中可真熱鬧,春花似錦固耘、人聲如沸题篷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,783評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽番枚。三九已至,卻和暖如春损敷,著一層夾襖步出監(jiān)牢的瞬間葫笼,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 32,918評論 1 269
  • 我被黑心中介騙來泰國打工拗馒, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留路星,地道東北人。 一個月前我還...
    沈念sama閱讀 47,962評論 2 370
  • 正文 我出身青樓诱桂,卻偏偏與公主長得像洋丐,于是被迫代替她去往敵國和親呈昔。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,781評論 2 354

推薦閱讀更多精彩內(nèi)容