導航:首頁 > 編程語言 > python做客戶端

python做客戶端

發布時間:2024-01-16 23:42:59

『壹』 如何用python開發一個ssh客戶端工具


1)通過paramiko的ssh模塊連接指定主機;

2)通過SSHClient.exec_command在遠程主機上執行命令

3)通過exec_command返回的stdout,stdin,stderr進行交互;

4)保存成功連接的主機信息(session),可以通過ls命令查看,sessionid命令,直接啟動新連接;

5)可在windows和linux下運行,寫程序時需要注意他們的差別。
代碼ssh.py

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

importos,sys
importparamiko
importthreading
importplatform

curr_ssh=None
curr_prompt=">>"

#使用說明
defprintUsage():
print"!ls:listsessions."
print"!sessionid:connectsession."
print"!connhostuserpassword:connecthostwithuser."
print"!exit:exit."

#連接
defconn(ip,username,passwd):
try:
ssh=paramiko.SSHClient()
ssh.set_missing_host_key_policy(paramiko.AutoAddPolicy())
ssh.connect(ip,22,username,passwd,timeout=5)
print"Connectto",ip,"with",username
globalcurr_prompt
curr_prompt=username+"@"+ip+">>"
returnssh
except:
returnNone

#載入以前的連接信息
sessions=[]
defloadSessions():
globalsessions
try:
f=open("sessions")
sessions=f.readlines()
f.close()
except:
pass

#執行本地命令,ssh.py的命令
defexe_cmd_local(cmd):
if(cmd=="!ls"):
loadSessions()
globalsessions
i=0
print"Sessions:"
forsinsessions:
print"[%d]%s"%(i,s)
i+=1
else:
vals=cmd.split('')
if(vals[0]=="!session"):
id=(int)(vals[1])
if(id<len(sessions)):os_name="platform.system()"new_console_cmd=""if(os_name="=""linux"):="".=""ssh.py="""=""+=""sessions[id]+"""=""elif(os_name="=""windows"):=""sessions[id]=""os.system(new_console_cmd)=""else:=""print="""didn't=""hava=""sessoin=""",vals[1]=""elif(vals[0]="="!conn"):"global=""curr_ssh=""f="open("sessions","a")"line="vals[1]+"""+vals[2]+"="""+vals[3]+" "=""f.write(line)=""f.close()=""#在ssh連接的主機上執行命令=""def=""exe_cmd_ssh(ssh,cmd):=""if(ssh="="none):=""connect=""to=""a=""server.=""use=""'!conn'=""please."=""return=""stdin,=""stdout,=""stderr="ssh.exec_command(cmd)"#stdin.write("y")=""#簡單交互,輸入=""『y』=""#屏幕輸出=""stdout.read()=""stderr.read()=""#入口函數=""if=""__name__="='__main__':"loadsessions()=""if(len(sys.argv)="=4):"printusage()=""while=""true:=""cmd="raw_input(curr_prompt)"if(len(cmd)="=0):"continue=""if(cmd="=""!exit"):=""if(curr_ssh=""!="None):"curr_ssh.close();=""break=""if(cmd[0]="="'!'):=""exe_cmd_local(cmd)=""exe_cmd_ssh(curr_ssh,cmd)<=""pre="">

『貳』 Python網路編程5-實現DHCP Client

  DHCP(Dynamic Host Configuration Protocol,動態主機配置協議),前身是BOOTP協議,是一個區域網的網路協議,使用UDP協議工作,統一使用兩個IANA分配的埠:67(伺服器端),68(客戶端)。主要作用是集中的管理、分配IP地址,使client動態的獲得IP地址、Gateway地址、DNS伺服器地址等信息。

option欄位
  DHCP報文中的Options欄位可以用來存放普通協議中沒有定義的控制信息和參數。如果用戶在DHCP伺服器端配置了Options欄位,DHCP客戶端在申請IP地址的時候,會通過伺服器端回應的DHCP報文獲得Options欄位中的配置信息。

獲取IP地址過程

  實驗使用的linux 主機由兩個網路介面,其中ens33使用DHCP獲取IP地址,ens37使用靜態IP地址;因此需要使用ens33來發送數據包。

  Change_MAC.py用於MAC地址與Bytes類型相互轉換。

  DHCP_Discover.py用於發送DHCP Discover報文;其中GET_MAC.py見ARP章節。

  DHCP_Request.py用於發送DHCP Request報文。

  DHCP_FULL.py用於完成DHCP Client與DHCP Server的報文交互

Wireshark對遠程linux主機抓包,結果如下
客戶端以廣播發送DHCP Discover包,其中報文操作類型為1(請求報文),DHCP客戶端的MAC地址設置為00:0c:29:03:a1:08,option53設置報文類型為Discover,option55(請求選項列表)中包含請求的參數。

伺服器以單播向客戶端回復信息,其中報文操作類型為2(應答報文),分配給客戶端的IP為192.168.160.146,option 53設置報文類型為offer,Option 54設置伺服器標識為192.168.160.254,其他option為客戶端請求列表的應答。

值得注意的是,交互的四個報文中Transaction ID均為0x00000000,表明是同一次DHCP交互報文。

『叄』 學Python畢業後可以做什麼

Python簡單易學,入門門檻低,而且可以跨平台使用,一處編寫處處運行,因此從開發者的視角來說非常高效。

其穩定性和安全性也在大型實際項目上得到了驗證,一些著名的網站或客戶端應用都是用Python來實現的,例如 YouTube,豆瓣,BitTorrent 和 Dropbox等。

Python的應用領域

1. Web開發

Python可以快速創建Web應用,這得益於其強大的基礎庫和豐富的網路框架,例如著名的Django,Flask,Tonardo,Web.py 等。

通過使用這些Web框架,我們開發Web網站會更加安全與便利,在天下武功唯快不破的時代,何樂而不為呢。

2. 游戲開發

Python也能用來開發互動性的游戲。PySoy可以提供3D引擎,而PyGame則可以提供了開發一款游戲的基本功能和庫支持。例如 Civilization-IV,Disney』s Toontown Online,Vega Strike 等游戲都是通過Python來開發。

在網路游戲開發中,Python也有很多應用,相比Lua而言,Python 有更高階的抽象能力,可以用更少的代碼描述游戲業務邏輯。

3. 機器學習與人工智慧

機器學習和人工智慧是當下最熱的話題,Python 在人工智慧領域內的機器學習、神經網路、深度學習等方面,都是主流的編程語言。原因至少有以下三點:

· 目前世界上優秀的人工智慧學習框架,比如 Google 的 TransorFlow(神經網路框架)、FaceBook 的 PyTorch(神經網路框架)以及開源社區的 Karas 神經網路庫等,都是用 Python 實現的;

· 微軟的 CNTK(認知工具包)也完全支持 Python,並且該公司開發的 VS Code,也已經把 Python 作為第一級語言進行支持。

· Python 擅長進行科學計算和數據分析,支持各種數學運算,可以繪制出更高質量的 2D 和 3D 圖像。

如今AI 時代的來臨,Python 作為 AI 時代頭牌語言的位置,已經確定。

4. 科學計算與數據可視化

自1997 年,NASA 就大量使用 Python 進行各種復雜的科學運算,為 Python 積累了豐富的科學運算庫。

並且,和其它解釋型語言(如 shell、js、PHP)相比,Python 在數據分析、可視化方面有相當完善和優秀的庫,例如 NumPy、SciPy、Matplotlib、pandas 等,這可以滿足 Python 開發者高效編寫科學計算程序。

同時基於Matplotlib,Seaborn,又能方便繪制圖形,能讓數據可以更直觀的表現。

5. 桌面軟體

Python可用於桌面應用程序編程。它提供了可用於開發用戶界面的庫,如Tkinter,wxPython和pyQT等,可用於在多個平台上創建桌面應用程序。


Python人才需求逐年增加,從市場整體需求來看,Python在招聘市場上的流行程度也是在逐步上升的,工資水平也是水漲船高。據統計Python平均薪資水平在12K,隨著經驗的提升,薪資也是逐年增長。

目前初級Python工程師薪資待遇就達10-15K,而隨著開發年限的增加,Python開發者薪資呈直線上升的變化趨勢,工作8年的Python薪資攀升至25K左右。

4、Python崗位有哪些呢?

主要的崗位有這些:

Python全棧開發工程師(10k-20K)

Python運維開發工程師(15k-20K)

Python高級開發工程師(15k-30K)

Python大數據工程師(15K-30K)

Python機器學習工程師(15k-30K)

Python架構師(20k-40k)

學習Python的程序員,除去Python開發工程師、Python人工智慧工程師、Python自動化測試外,也能夠朝著Python游戲開發工程師、數據分析工程師、Linux運維工程師等方向發展,發展方向較為多元化。

隨著Python的流行,帶動的是它的普及以及市場需求量,所以現在學習Python是個不錯的時機。

『肆』 哪個ftp客戶端是用python寫的

使用Python寫FTP客戶端時,你所需要做的就是導入ftplib模塊,並實例化一個ftplib.FTP類對象,所有的FTP操作(如登陸,傳輸文件和登出等)都要使用這個對象來完成。
以下是操作的基本步驟:
(1) 連接到伺服器
(2) 登陸伺服器
(3) 發出服務請求(文件交互)
(4) 退出

閱讀全文

與python做客戶端相關的資料

熱點內容
做解壓學慣用品手工 瀏覽:85
手機文件夾刪除又出現怎麼解決 瀏覽:285
php時間段分析 瀏覽:213
redisjava類 瀏覽:911
剪力牆錯開部分鋼筋是否加密 瀏覽:477
linux字元設備驅動程序 瀏覽:57
全排列演算法java 瀏覽:465
中國銀行app轉賬電子回單在哪裡 瀏覽:51
操作簡單的程序員 瀏覽:600
數值積分演算法求pi 瀏覽:18
按鈕怎麼連命令方塊 瀏覽:909
房貸還清後不解壓能貸款嗎 瀏覽:36
程序員哄老婆開心技術 瀏覽:672
oracle自動備份壓縮文件 瀏覽:855
遵義人字形加密網帶 瀏覽:255
寧波人社在哪裡下載app 瀏覽:92
好噠商戶app下載在哪裡下載 瀏覽:609
廣發兌星巴克是在app哪裡操作 瀏覽:783
linuxgetline 瀏覽:215
app的懸浮窗許可權在哪裡設置 瀏覽:686