Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >Python因特网客户端编程

Python因特网客户端编程

原创
作者头像
用户4845306
修改于 2019-03-14 10:02:10
修改于 2019-03-14 10:02:10
1.5K0
举报

简介

底层网络通信协议使用的是套接字,当我们需要进行文件传输、阅读、发送接收电子邮件时,使用的协议与套接字的客户端/服务器端相似,唯一去的区别在于使用TCP/IP这样的底层的协议创建了新的、有专门用途的协议,以此来实现刚刚介绍的服务。

文件传输

文件传输因特网协议

包括:

  • 文件传输协议FTP,需要登录,但可以匿名登录
  • UNIX到UNIX复制协议UUCP
  • 用于web的超文本传输协议HTTP,不需要登录
  • UNIX下的远程文件复制命令rcp(以及更安全更灵活的scprsync),需要登录

文件传输协议FTP

主要用于匿名下载公共文件,也可用于两台计算机之间传输文件。FTP要求输入用户名和密码才能访问远程FTP服务器,但也允许用户匿名登录,匿名登录的用户名为“anonymous”,密码一般是用户的电子邮件地址。匿名登录只能使用有限的几个FTP命令。

工作流程如下:

  1. 客户端连接远程主机上的FTP服务器
  2. 客户端输入用户名和密码(或“anonymous”和电子邮件地址)
  3. 客户端进行各种文件传输和信息查询操作
  4. 客户端从远程FTP服务器退出,结束传输

在底层,FTP只使用TCP,而不使用UDP。客户端和服务器都使用两个套接字来通信:一个是控制和命令端口(21号端口),另一个是数据端口有时候是20号端口)。

之所以说是有时候,是因为FTP有两种模式:主动和被动主动模式下,服务器才使用20号端口为数据端口,并“主动”连接客户端的数据端口。在被动模式下,服务器只是告诉客户端随机的数据端口号,客户端必须主动建立数据连接。

Python和FTP

导入ftplib模块→实例化一个ftplib.FTP对象。所有的FTP操作都使用这个对象完成。

方法

描述

login(用户名,密码等)

登录ftp服务器

pwd()

获得当前工作目录

cwd(路径)

设置当前工作目录

dir(路径)

显示目录中的内容

nlst(路径)

与dir类似,但是返回的是包含文件名的列表

retrlines(cmd命令)

给定FTP命令,用于下载文本文件。

retrbinary(cmd命令)

与retrlines类似,只用来处理二进制文件

storlines(cmd命令,文件对象)

给定FTP命令,用来上传文本文件

storbinary(cmd命令,文件对象)

与strolines相似,只用来处理二进制文件

rename(旧文件名,新文件名)

重命名

delete(路径)

删除位于 路径 的远程文件

mkd(目录)

创建远程目录

rmd(目录)

删除远程目录

quit()

关闭连接并退出

网络新闻

Usenet与新闻组

Usenet新闻系统是一个全球存档的“电子公告板”。整个系统是一个由大量计算机组成的庞大的全球网络,计算机之间共享Usenet上的帖子。

网络新闻传输协议

用户使用网络新闻传输协议(NNTP)在新闻组中下载或发表帖子。在FTP中,登录、传输和控制需要使用不同的端口,而NNTP只使用一个标准端口119来通信

Python和NNTP

有一个nntplib库和一个需要实例化的nntplib.NNTP类

  1. 连接到服务器
  2. 登录(根据需要)
  3. 发出服务请求
  4. 退出

一般来说,登陆后需要调用group()方法来选择一个感兴趣的新闻组。该方法返回服务器的回复、文章数量、第一篇和最后一篇文章的ID、新闻组的名称。

nntplib.NNTP类方法

见链接:https://docs.python.org/3/library/nntplib.html#methods

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
[PYTHON] 核心编程笔记(17.P
流行的有文件传输协议(FTP),Unix-to-Unix复制协议(UUCP),以及网页的超文本传
py3study
2020/01/06
5580
python-应用层-网络编程-FTP
前面描述的基于TCP/UDP协议的网络程序开发,主要是针对传输层协议的底层代码实现 在实际操作过程中,更多的情况是直接操作应用层的数据协议的网络程序开发,如文件传输协议FTP,邮件协议SMTP等等
大牧莫邪
2018/08/27
9460
Python和FTP
1、HTTP主要用于基于Web的文件下载以及访问Web服务,一般客户端无须登录就可以访问服务器上的文件和服务。大部分HTTP文件传输请求都用于获取网页(即将网页文件下载到本地)。 2、FTP主要用于匿名下载公共文件,也可以用于两台计算机之间传输文件。FTP要求输入用户名和密码才能访问FTP服务器,但也允许没有账号的用户匿名登录。不过管理员要先设置FTP服务器以允许匿名用户登录。这时,匿名用户的用户名是“anonymous”,密码一般是用户的电子邮件地址。 工作流程: ①客户端连接远程主机上的FTP服务器。
用户1173509
2018/01/17
1.4K0
新闻汇总(1):初次实现
网上充斥着形式多样的新闻源,包括报纸、视频频道、博客、播客等。有些新闻院还提供诸如RSS和Atom feed等服务,让你使用相对简单的代码就能获取最新的新闻,而无需对网页进行解析。在这个项目中,我们将探索一种比Web更早面世的机制:网络新闻传输协议(Network News Transfer Protocol,NNTP)。我们将首先创建一个没有任何抽象(没有函数、没有类)的原型,在创建一个包含重要抽象的通用系统。为此,我们将使用能够让你与NNTP服务器交互的nntplib库,但添加其他协议和机制应该很简单。
不可言诉的深渊
2019/07/26
7180
python构建SSH僵尸网络
构建僵尸网络,主要使用的包为pexpect,Pexpect 是一个用来启动子程序并对其进行自动控制的 Python 模块,它可以用来和像 ssh、ftp、passwd、telnet 等命令行程序进行自动交互。
Tim在路上
2020/08/04
7470
Window基础(黑客基础)
1.ProgramData:C:\ProgramData 是个公用的被创建文件夹或文件存放的地方,这些文件夹或文件仅由创建者完整控制。programdata是电脑C盘的一个系统文件夹
全栈程序员站长
2022/08/15
3.6K0
Window基础(黑客基础)
TCPIP协议:传输层几个重要的概念知识
今天给大家介绍TCP/IP协议当中传输层几个重要概念,希望对大家理解TCP/IP协议提供一些帮助!
小明互联网技术分享社区
2024/12/23
3960
TCPIP协议:传输层几个重要的概念知识
Python编写渗透工具学习笔记二 | 0x02利用FTP与web批量抓肉鸡
0x02利用FTP与web批量抓肉鸡 脚本要实现的目标和思路: 先尝试匿名登录ftp,当匿名登录失败时再尝试用用户/密码爆破登录,登录成功后,脚本会搜索ftp中存在的页面,然后下载每个被找到的页面,并向其中注入恶意重定向代码,最后脚本会将被挂马的页面传回ftp服务器,这样任何存在该漏洞的电脑访问服务器的这个页面都会被黑掉。 如果这个ftp服务器还提供web服务的话,那么任何存在该漏洞的电脑访问这个web页面都会被黑掉。 环境: Myftp允许匿名登录 ftp2不允许匿名登录 登录用户 ftpuser 密码
安恒网络空间安全讲武堂
2018/02/06
4.7K0
Python编写渗透工具学习笔记二 | 0x02利用FTP与web批量抓肉鸡
史上最全的网络端口号大全
53----DNS域名系统协议 80----超文本传输协议(HTTP) 443----安全超文本传输协议(HTTPS) 1863----MSN通信端口 109----邮局协议 v.2(POP2) 110----邮局协议v.3(POP3) 995----安全邮局协议v.3(POP3S) 143----交互式的邮件访问(IMAP) 993----安全交互式的邮件访问协议(IMAPS) 25----简单邮件传输协议(SMTP) 465----特别注意:ISA/TMG中安全简单邮件传输协议(SMTPS
L宝宝聊IT
2018/06/20
3.3K0
ftp协议及常用命令
方法二:在命令提示符cmd输入ftp,用open连上服务器,再输入用户名和密码,如下图:
兮动人
2021/06/11
2.1K0
ftp协议及常用命令
2023年杀手级的 5 款免费FTP客户端,真的好用到爆,推荐给需要的工程师!
FTP协议大家都了解吧,FTP,英文全称:File Transfer Protocol,即文件传输协议,用于文件的传输。FTP通常应用在服务器,也有应用在网络设备的,这个时候通常会使用到FTP工具,FTP工具通常支持 FTP、SFTP、HTTP/HTTPS 等协议,本文瑞哥将给大家分享19款免费的FTP工具,这些工具中说不定有你正在使用的,如果你正在寻找免费的FTP工具,那么本文就非常适合你。
网络技术联盟站
2023/03/01
8.8K0
2023年杀手级的 5 款免费FTP客户端,真的好用到爆,推荐给需要的工程师!
TCP/UDP常见端口参考(超全_面试题常用_建议收藏)
著名端口 端口号码 / 层 名称 注释 1 tcpmux TCP 端口服务多路复用 5 rje 远程作业入口 7 echo Echo 服务 9 discard 用于连接测试的空服务 11 systat 用于列举连接了的端口的系统状态 13 daytime 给请求主机发送日期和时间 17 qotd 给连接了的主机发送每日格言 18 msp 消息发送协议 19 chargen 字符生成服务;发送无止境的字符流 20 ftp-data FTP 数据端口 21 ftp 文件传输协议(FTP)端口;有时被文件服务协议
红目香薰
2022/11/29
1K0
第七章 FTP服务(1)
FTP是File Transfer Protocol(文件传输协议)的缩写。功能是支持客户访问后的上传、下载文件。当然在全球internet上,我们部署FTP的目的主要是用于资源的共享,让客户端可以下载数据。现今很多企业内部也会部署FTP服务器作为文件服务器使用,从而替代samba、SMB等服务。
晓天
2019/07/04
2.8K0
第七章  FTP服务(1)
exportfs命令,NFS客户端问题,FTP介绍,使用vsftpd搭建ftp
/tmp/ 192.168.209.129/24(rw,sync,no_root_squash)
叶瑾
2018/05/10
3.9K2
exportfs命令,NFS客户端问题,FTP介绍,使用vsftpd搭建ftp
【RL-TCPnet网络教程】第35章 FTP文件传输协议基础知识
本章节为大家讲解FTP(File Transfer Protocol,文件传输协议)的基础知识,方便后面章节的实战操作。
Simon223
2018/10/09
7810
Python-Net编程
网络编程 网络: 网络协议: 一套规则 网络模型: 七层模型-七层-理论 物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 四层模型-实际应用 链路层 网络层 传输层 引用层 每一层都有相应的协议负责交换信息或者协同工作 TCP/IP 协议族 IP地址:负责在网络上唯一定位一个机器 IP地址分ABCDE类 是由四个数字段组成,每个数字段的取值是0-255 192.168.xxx.xxx: 局域网ip 127.0.0.1: 本机 IPv4, IPv6 端口 范围: 0-65535 知名端口:0-1
ruochen
2021/02/19
1.1K0
Python-Net编程
FTP远程文件传输服务安装与配置
描述: FTP只通过TCP连接,没有用于FTP的UDP组件.FTP不同于其他服务的是它使用了两个端口, 一个数据端口和一个命令端口(或称为控制端口)。通常21端口是命令端口,20端口是数据端口。当混入主动(Active)/被动模式(Passive)的概念时,数据端口就有可能不是20了。
全栈工程师修炼指南
2022/09/29
2.1K0
FTP远程文件传输服务安装与配置
TCP/UDP常见端口参考
在网络技术中,端口(Port)大致有两种意思:一是物理意义上的端口,比如,ADSL Modem、集线器、交换机、路由器用于连接其他网络设备的接口,如RJ-45端口、SC端口等等;二是逻辑意义上的端口,一般是指TCP/IP协议中的端口,端口号的范围从0到65535,比如用于浏览网页服务的80端口,用于FTP服务的21端口等等。
申霖
2019/12/27
2.3K0
网络笔记之端口及常见端口号
传输层协议,如传输控制协议(TCP)与用户数据包协议(UDP),在分组表头中,定义了来源端口号与目的端口号。 一个通信端口号使用16位无符号整数(unsigned integer)来表示,其范围介于0与65535之间。 在TCP协议中,端口号0是被保留的,不可使用。 1–1023 系统保留,只能由root用户使用。 1024—4999 由客户端程序自由分配。 5000—65535 由服务器端程序自由分配在UDP协议中,来源端口号是可以选择要不要填上,如果设为0,则代表没有来源端口号。
Meng小羽
2019/12/23
2.3K0
使用 python 快速建立 FTP 服务器和客户端
在运维工作中我们可能经常需要共享或传输文件,最简单快捷的方法就是搭建一个FTP服务器。那么我们有必要先了解一下什么是ftp。
somenzz
2020/12/10
6.6K0
使用 python 快速建立 FTP 服务器和客户端
相关推荐
[PYTHON] 核心编程笔记(17.P
更多 >
LV.0
这个人很懒,什么都没有留下~
作者相关精选
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档