《Python 黑帽子》学习笔记 - 网络基础1 - Day 2

不管是做软件开发还是信息安全,理解和用好 socket,是网络编程的基础,是编写与网络相关脚本工具的前提,本章使用 Python 的 socket 模块,创建 TCP 和 UDP 服务端及客户端。并实现了 netcat,TCP 代理等工具,是学习后续知识的铺垫。

作者提到,在目标网络环境下,可能没有开发环境,甚至不会有互联网条件,但是如果目标安装了 Python,利用 Python 随时创建网络通信工具,在内网环境下进行渗透测试,是一个可行的办法。另外,用 Python 开发渗透测试脚本,最重要是为了侦察和攻击的“短平快”,应该简单处理套接字阻塞、套接字异常等问题,注重实现功能,针对性强,弱化开发设计的全面性。

在实现这些工具之前,有必要对网络基础和 Python 的 socket 模块做些更深入的理解,知其所以然,也是补充自己的知识盲点。之后丰富下书中的代码,学以致用。

网络编程基础

互联网的本质就是一系列统一标准的网络协议,就像不同国家的人用英语作为交流的统一标准,网络编程就是按照这些标准的协议规则解决网络通信的问题。按照功能不同,网络协议中最重要的是 OSI 七层协议,或 TCP/IP 五层/四层 协议。

维基上有张图,很好的解释了在网络上的两个主机是如何通信的。

network topolog and data flow

Two Internet hosts connected via two routers and the corresponding layers used at each hop. The application on each host executes read and write operations as if the processes were directly connected to each other by some kind of data pipe. Every other detail of the communication is hidden from each process. The underlying mechanisms that transmit data between the host computers are located in the lower protocol layers.

借助 bing 翻译下,网络上的两个主机是通

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Python中,异常处理是非常重要的一部分。当程序运行时如果出现错误,如果没有异常处理,程序就会崩溃。为了避免这种情况,Python提供了异常处理机制。 在Python中,异常处理语句使用 `try` 和 `except` 关键字来实现。`try` 语句块中包含可能会发生异常的代码,如果这段代码出现了异常,则会跳转到 `except` 语句块中执行异常处理代码。 下面是一个简单的例子: ```python try: num = int(input("请输入一个整数:")) print(10/num) except ZeroDivisionError: print("除数不能为0") except ValueError: print("输入的不是整数") ``` 在上面的代码中,我们尝试将用户输入的字符串转换为整数,并将其用作除数计算 10/num。如果用户输入的是 0,则会触发 ZeroDivisionError 异常。如果用户输入的不是整数,则会触发 ValueError 异常。如果发生异常,则会跳转到对应的 except 语句块中执行处理代码。 除了可以指定具体的异常类型,也可以使用 `except Exception` 来捕获所有异常。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) ``` 在上面的代码中,如果发生任何异常,都会跳转到 `except` 语句块中执行处理代码,并将异常信息打印出来。 除了 `try` 和 `except`,还有 `finally` 关键字,它指定的代码块无论是否发生异常都会执行。例如: ```python try: num = int(input("请输入一个整数:")) print(10/num) except Exception as e: print("发生异常:", e) finally: print("程序执行完毕") ``` 在上面的代码中,无论是否发生异常,都会执行 `finally` 中的代码,即输出“程序执行完毕”。 总之,在Python中,异常处理是非常重要的一部分,它可以有效避免程序崩溃,提高程序的健壮性和可靠性。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值