• 【Python脚本进阶】1.2、python脚本基础知识(上)


    目录

    一、基础

    1.1、解释

    简介:

    示例:

    1.2、交互

    简介:

    示例:

    二、Python语言

    1.1、简介:

    1.2、变量:

    简介:

    示例:

    1.3、字符串:

    简介:

    示例:

    1.4、列表

    简介:

    示例:

    1.5、词典

    简介:

    示例:

    1.6、网络:

    简介:

    示例:

    1.7、条件选择语句

    简介:

    示例:


    (我所用为python3+pycharm)

    一、基础

    1.1、解释

    简介:

    顾名思义,带.py的输入进去,把内容给运行了


    示例:

    1.2、交互

    简介:

    调用Python解释器并直接与之交互,输入python命令即可


    示例:

    >>>提示符,即正在使用交互式解释器



    二、Python语言

    1.1、简介:

    变量、数据类型、字符串、复杂的数据结构、网络、条件选择语句、迭代、文件处理、异常处理, 以及与操作系统的交互操作等概念

    1.2、变量:

    简介:

    变量是指存储在某个内存地址上的数据。这个内存地址可以存储不同的值, 如整型数、实数、布尔值、字符串, 或是列表(list)或词典这类更复杂的数据


    示例:

    1、整型数的变量a,字符串的变量b,把两个变量合并成一个字符串,先用str()函数把变量a转换成一个字符串

    2、声明一个字符串、整型数、列表或布尔值, 而解释器正确地自动确定每个变量的类型

     

    1.3、字符串:

    简介:

    非常强大的处理字符串的方法(可参考官方文档)


    示例:

    upper()是将字符串转成大写形式

    lower()是将字符串转成小写形式

    replace(old,new)是用new子串取代old子串

    find()返回子串在字符串中第一次出现时的偏移量。

    1.4、列表

    简介:

    list(列表)还内置了执行添加、插入、删除、出站、索引、计数、排序、反转等操作的方法

    第一个是从0开始排序的


    示例:

    创建表:list=['a','aa',2]

    删除元素:del来删除,del list[nmu]

    访问表值:list2[1:5]

    比较两个列表的元素:cmp(list1, list2)

    列表元素个数:len(list)

    返回列表元素最大值:max(list)

    返回列表元素最小值:min(list)

    将元组转换为列表:list(seq)

    ……

    1.5、词典

    简介:

    词典由n对键和值的项组成,创建词典时, 每个键和它的值都是以冒号分隔的, 同时用逗号分隔各个项。用途广泛,如创建了一个相关的词典, 查找FTP之类的关键字, 就返回与之关联的端口值21


    示例:

    .keys():返回的是词典中所有键的列表

    .items():返回的是词典中所有项的完整信息的列表

    services = {'ftp':21,'ssh':22,'smtp':25,'http':80}

    services.keys()

    services.items()

    1.6、网络:

    简介:

    socket 模块提供了一个用Python 进行网络连接的库。


    示例:

    编写一个抓取banner 的(banner-grabbing) 脚本,会在连上指定的IP 地址和TCP 端口后, 将banner 打印出来。

    1、导入socket 模块之后

    2、实例化一个socket 类的新变量s。

    3、用connect()方法建立与指定IP 地址和端口的网络连接,连接成功, 就可以通过套接字进行读/写操作。

    4、recv(l024)方法将读取套接字中接下来的1024B 数据

    5、把该方法的返回结果放在一个变量中, 并把这个来自服务器的响应结果打印出来


    import socket
    socket.setdefaulttimeout(2)
    s = socket. socket ()
    s.connect (("192.168. 190.131", 21))
    ans = s.recv(1024)
    print(ans)


    发现Linux没有开什么端口

     在Windows中找了一个端口

     就返回一个b''

    不理解

    再准备连其他的,返现确实是连接上了,所有报错了

    1.7、条件选择语句

    简介:

    IF 语句是对逻辑表达式进行求值, 并根据求值结果做出决定

    if 判断条件1:

            执行语句1……

    elif 判断条件2:

            执行语句2……

    ……

    else:

            执行语句4……


    示例:

    想要知道某个指定的FTP 服务器中是否存在可以攻击的漏洞。这就需要将服务器的响应结果与一些已知存在漏洞的FTP 服务器版本(的banner) 进行比较

     
    1. import socket
    2. socket.setdefaulttimeout(2)
    3. s = socket. socket ()
    4. s.connect (("192.168. 190.131", 21))
    5. ans = s.recv(1024)
    6. print(ans)
    7. if "FreeFloat Ftp Server (Version 1.00)" in ans:
    8. print(" FreeFloat FTP Server is vulnerable.")
    9. elif "3Com 3CDaemon FTP Server Version 2.0" in ans:
    10. print(" FreeFloat FTP Server is vulnerable.")
    11. elif "Ability Server 2.34" in banner:
    12. print(" FreeFloat FTP Server is vulnerable.")
    13. elif "Sami FTP Server 2.0.2" in ans:
    14. print(" FreeFloat FTP Server is vulnerable.")
    15. else:
    16. print("FTP Server is not vulnerable.")

  • 相关阅读:
    jmeter界面压测过程卡死解决思路
    聊聊动态线程池的9个场景
    vue项目中使用antvX6新手教程,附demo案例讲解(可拖拽流程图、网络拓扑图)
    图论 - 二分图(染色法、匈牙利算法)
    学好Linux的必经之路
    1079 Total Sales of Supply Chain
    Java+JSP+Mysql+Tomcat实现Web图书管理系统
    花好月圆时,邀你一起来读诗!
    0基础学习VR全景平台篇第111篇:全景图拼接和编辑 - PTGui Pro教程
    陈志泊主编《数据库原理及应用教程第4版微课版》的实验题目参考答案实验4
  • 原文地址:https://blog.csdn.net/qq_53079406/article/details/125989821