导航:首页 > 编程语言 > 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做客户端相关的资料

热点内容
linux字符设备驱动程序 浏览:55
全排列算法java 浏览:463
中国银行app转账电子回单在哪里 浏览:51
操作简单的程序员 浏览:598
数值积分算法求pi 浏览:16
按钮怎么连命令方块 浏览:909
房贷还清后不解压能贷款吗 浏览:36
程序员哄老婆开心技术 浏览:672
oracle自动备份压缩文件 浏览:853
遵义人字形加密网带 浏览:255
宁波人社在哪里下载app 浏览:92
好哒商户app下载在哪里下载 浏览:609
广发兑星巴克是在app哪里操作 浏览:783
linuxgetline 浏览:215
app的悬浮窗权限在哪里设置 浏览:686
51单片机定时器溢出标志 浏览:373
单片机烧写方法图解 浏览:399
遍历输出java 浏览:551
贵妃app直播哪里下载 浏览:273
android手机屏幕宽度和高度 浏览:816