使用ping方法,依据TTL值,探测对方主机操作系统

使用ping方法,依据TTL值,探测对方主机操作系统

由于Windows系统和Linux操作系统的TCP/IP实现方式不相同,导致两种系统对特定格式的数据包会有不同的响应结果。

通常情况下,Windows系统的TTL起始值为128,Linux系统的TTL起始值为64,且每经过一跳路由,TTL值减1

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

from optparse import OptionParser
import os


def ttl_scan(ip):
    result = os.popen("ping -c 1 " + ip)

    res = result.read()
    # print(res)
    for line in res.splitlines():
        # print(line)
        if 'TTL' in line:
            # print(line)
            ttl_num = line.split('=')[-1]
            # print(ttl_num)

            if int(ttl_num) <= 64:
                print("%s  is Linux/Unix" % ip)  # 是的话就为linux/Unix
                exit(-1)
            else:
                print("%s is Windwows" % ip)  # 反之就是linux
                exit(-1)
        else:
            pass


def main():
    parser = OptionParser("Usage:%prog -i <target host> ")  # 输出帮助信息
    parser.add_option('-i', type='string', dest='IP', help='specify target host')  # 获取ip地址参数
    options, args = parser.parse_args()
    ip = options.IP
    ttl_scan(ip)


# 219.150.184.218 104.21.27.222 192.168.100.61
if __name__ == "__main__":
    main()

执行结果:

在这里插入图片描述

文件为doc版可自行转成txt在手机上看挺好的。 本资源来自网络如有纰漏还请告知如觉得还不错请留言告知后来人谢谢!!!!! 入门学习Linux常用必会60个命令实例详解 Linux必学的60个命令 Linux提供了大量的命令利用它可以有效地完成大量的工作如磁盘操作、文件存取、目录操作、进程管理、文件权限设定等。所以在Linux系统上工作离不开使用系统提供的命令。要想真正理解Linux系统就必须从Linux命令学起通过基础的命令学习可以进一步理解Linux系统。 不同Linux发行版的命令数量不一样但Linux发行版本最少的命令也有200多个。这里笔者把比较重要和使用频率最多的命令按照它们在系统中的作用分成下面六个部分一一介绍。 ◆ 安装和登录命令:login、shutdown、halt、reboot、install、mount、umount、chsh、exit、last; ◆ 文件处理命令:file、mkdir、grep、dd、find、mv、ls、diff、cat、ln; ◆ 系统管理相关命令:df、top、free、quota、at、lp、adduser、groupadd、kill、crontab; ◆ 网络操作命令:ifconfig、ip、ping、netstat、telnet、ftp、route、rlogin、rcp、finger、mail、 nslookup; ◆ 系统安全相关命令:passwd、su、umask、chgrp、chmod、chown、chattr、sudo ps、who; ◆ 其它命令:tar、unzip、gunzip、unarj、mtools、man、unendcode、uudecode。 本文以Mandrake Linux 9.1(Kenrel 2.4.21)为例介绍Linux下的安装和登录命令。 immortality按:请用ctrl+f在本页中查找某一部分的内容或某一命令的用法。 -------------------------------------------------------------------------------- Linux必学的60个命令(1)-安装与登陆命令 login 1.作用 login的作用是登录系统它的使用权限是所有用户。 2.格式 login [name][-p ][-h 主机名称] 3.主要参数 -p:通知login保持现在的环境参数。 -h:用来向远程登录的之间传输用户名。 如果选择用命令行模式登录Linux的话那么看到的第一个Linux命令就是login:。 一般界面是这样的: Manddrake Linux release 9.1(Bamboo) for i586 renrel 2.4.21-0.13mdk on i686 / tty1 localhost login:root password: 上面代码中第一行是Linux发行版本号第二行是内核版本号和登录的虚拟控制台我们在第三行输入登录名按“Enter”键在Password后输入账户密码即可登录系统。出于安全考虑输入账户密码时字符不会在屏幕上回显光标也不移动。 登录后会看到下面这个界面(以超级用户为例): [root@localhost root]# last login:Tue ,Nov 18 10:00:55 on vc/1 上面显示的是登录星期、月、日、时间和使用的虚拟控制台。 4.应用技巧 Linux 是一个真正的多用户操作系统可以同时接受多个用户登录还允许一个用户进行多次登录。这是因为Linux和许多版本的Unix一样提供了虚拟控制台的访问方式允许用户在同一时间从控制台(系统的控制台是与系统直接相连的监视器和键盘)进行多次登录。每个虚拟控制台可以看作是一个独立的工作站工作台之间可以切换。虚拟控制台的切换可以通过按下Alt键和一个功能键来实现通常使用F1-F6 。 例如用户登录后按一下“Alt+ F2”键用户就可以看到上面出现的“login:”提示符说明用户看到了第二个虚拟控制台。然后只需按“Alt+ F1”键就可以回到第一个虚拟控制台。一个新安装的Linux系统允许用户使用“Alt+F1”到“Alt+F6”键来访问前六个虚拟控制台。虚拟控制台最有用的是当一个程序出错造成系统死锁时可以切换到其它虚拟控制台工作关闭这个程序。 shutdown 1.作用 shutdown命令的作用是关闭计算机它的使用权限是超级用户。 2.格式 shutdown [-h][-i][-k][-m][-t] 3.重要参数 -t:在改变到其它运行级别之前
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页