首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

写一个python脚本来读取两个参数,这两个参数是我需要到达和打印状态的主机和端口?

可以使用Python的sys模块来读取命令行参数,并使用socket模块来进行主机和端口的连接和状态打印。下面是一个示例脚本:

代码语言:txt
复制
import sys
import socket

def check_host_status(host, port):
    try:
        # 创建socket对象
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
        # 设置超时时间为2秒
        s.settimeout(2)
        # 连接主机和端口
        s.connect((host, port))
        # 打印连接成功的状态
        print(f"Host {host} on port {port} is reachable.")
    except socket.error:
        # 打印连接失败的状态
        print(f"Host {host} on port {port} is not reachable.")
    finally:
        # 关闭socket连接
        s.close()

if __name__ == "__main__":
    # 读取命令行参数
    if len(sys.argv) != 3:
        print("Usage: python script.py <host> <port>")
        sys.exit(1)
    host = sys.argv[1]
    port = int(sys.argv[2])
    # 调用函数检查主机状态
    check_host_status(host, port)

使用方法: 在命令行中执行以下命令:

代码语言:txt
复制
python script.py <host> <port>

其中<host>是要检查的主机地址,<port>是要检查的端口号。

该脚本会尝试连接给定的主机和端口,如果连接成功,则打印主机可达的状态,否则打印主机不可达的状态。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

NodeMCU开发板引脚映射

由于NodeMCU开发板引脚允许电压电流都是低于Arduino开发板引脚,所以如您想要将NodeMCU与Arduino引脚相互连接,请特别注意这两个开发板引脚电压电流区别。...特殊引脚情况说明 GPIO2引 在NodeMCU开发板启动时不能连接低电平。 GPIO15引在开发板运行中一直保持低电平状态。因此请不要使用GPIO15引读取开关状态或进行I²C通讯。...您可以用NodeMCU开发板模拟输入引脚读取0-3.3V模拟电压信号。 通讯 串行端口 ESP8266有2个硬件串行端口(UART)。 串行端口0(UART0)使用GPIO1GPIO3引。...其中GPIO1引TX0,GPIO3RX0。 串行端口1(UART1)使用GPIO2GPIO8引。其中GPIO2引TX1,GPIO8RX1。....给MCU程序其实是相当于底层驱动.需要对照引脚来写.还得考虑功能复用带来得各种冲突.总之个技术活,建议打印出来,不停得对照. ?

3.3K20

安装mitmproxy以及遇到简单用法

mitmproxy 一款工具,也可以说是 python 一个包,在命令行操作工具。 MITM 即中间人攻击(Man-in-the-middle attack) ?...如果需要抓手机包的话,就需要在你连接 wifi 修改代理 ? 上面的主机名字 你电脑抓包 ip 地址,端口刚才设置端口号。设置完了打开浏览器查看。 ?...抓包之后操作 由于在 window上操作,只能使用 mitmdump mitmweb这两个命令,mitmdump 命令没有界面,只能进行默默地抓包,不能进行数据包查看过滤。...) # 打印请求头 这个打印抓到请求头,方法名参数名称是固定,写错了就运行不了这个脚本。...除了上面的请求头,我们还可以访问他们请求方法,请求路径等。 ? 响应请求也可以获取: ? 同样,这里方法名参数也是固定,不这个会捕捉不到。

1.9K20
  • 小白也可以学会“黑客”常用工具软件,常用命令

    可以看到这个命令说明,它是一个探测本地电脑远程电脑之间信传送速度命令,这个命令需要TCP/IP协议支持,ping将会计算一条信息从本地发送到程再返回所需要时间,黑客使用这个命令决定是否对服务器进行攻击...三、telnetftp命令 这两个命令分别可以远程对系统进行telnet登陆ftp登陆,两种登陆使用不同协议,分别属于两种不同网络服务, ftp远程文件共享服务,...它可以显示当前正在活动网络连接详信息,如采用协议类型、当前主机与远端相连主机一个或多个)IP地址以及它们之连接状态等。使用netstat ?...可以显示它命令格式参数说明: netstat [-a] [-e] [-n] [-s] [-p proto] [-r] [interval] 其中参数说明如下: -a 显示所有主机端口号; -e...五、tracert命令 这个命令功能判定数据包到达目的主机所经过路径、显示数据包经过中继节点清和到达时间。

    1.6K10

    python面试

    编译型语言程序执行之前,需要一个专门编译过程,通过编译系统,把源高级程序编译成为机器语言文件,翻译只做了一次,运行时不需要翻译,所以编译型语言程序执行效率高,但也不能一概而论 2.Python解释器种类以及特点...6.列举python2python3区别 python3 使用 print 必须要以小括号包裹打印内容,比如 print('hi') python2 既可以使用带小括号方式,也可以使用一个空格来分隔打印内容...*args:用来发送一个非键值对可变数量参数列表给一个函数 **kwargs:允许你将不定长度键值对,作为参数传递给一个函数 11.is==区别 ==:python标准操作符中比较操作符...主要在你系统之间发起会话或者接受会话请求(设备之间需要互相认识可以是IP也可以是MAC或者主机名) 6.表示层:可确保一个系统应用层所发送信息可以被另一个系统应用层读取。...因为本地计算机可能有多个网址 IP,每一个 IP 端口有多个端口需要指定一个 IP 端口进行监听。

    1.9K52

    C++ Qt开发:QTcpSocket网络通信组件

    QTcpSocketQTcpServerQt中用于实现基于TCP(Transmission Control Protocol)通信两个关键类。...TCP一种面向连接协议,它提供可靠、双向、面向字节流通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间连接。...在实际使用中,可以通过调用state()函数获取当前套接字状态,并根据需要处理相应状态。例如,可以使用信号槽机制来捕获状态变化,以便在连接建立或断开时执行相应操作。...当套接字被连接后则可以通过socket->write()方法向上线客户端发送一个字符串,此处我们以发送lyshark为例,发送时需要向write()中传入两个参数。...port:要连接端口号。 openMode:套接字打开模式,默认为 ReadWrite。 函数用于初始化与指定远程主机端口连接。

    41410

    【Linux】网络基础+UDP网络套接字编程

    理由1:系统系统,网络网络,我们并不希望这两个模块儿强耦合在一起,因为一旦强耦合一个改变时另一个需要改动,代码鲁棒性不好,单纯从技术角度来讲,只用pid不用port绝对可以实现,但我们希望系统网络能够解耦...比如某个端口号代表服务器进程功能传数据,另外端口执行指令,那么有可能一个服务器进程兼具了这两种功能,当客户端向这两个端口号发送数据进行请求时,有可能请求到一个服务器进程,这个服务器进程同时响应两个客户端请求...并且可供使用ip地址也就只有云服务器主机公网ip(腾讯云服务器43.143.224.5)本地环回127.0.0.1这两个IP地址,所以实际上服务器收到客户端ip目的ip一样,因为在同一台主机下进行测试...该函数原型如下,需要传递子进程执行命令也就是command参数,以及管道文件打开模式,可以是只读只追加,我们今天肯定是用只读打开,读取管道文件另一端子进程执行指令输出结果。...User类成员主要还是客户端ip端口号,我们用这两个变量来标识一个客户,User构造函数用这两个变量来进行初始化即可。

    37310

    C++ Qt开发:QTcpSocket网络通信组件

    QTcpSocketQTcpServerQt中用于实现基于TCP(Transmission Control Protocol)通信两个关键类。...TCP一种面向连接协议,它提供可靠、双向、面向字节流通信。这两个类允许Qt应用程序在网络上建立客户端和服务器之间连接。...参数包括:msec:等待连接超时时间(以毫秒为单位)。如果设置为0(默认值),则表示无限期等待,直到有新连接到达。timedOut:一个可选布尔指针,用于指示等待是否超时。...在实际使用中,可以通过调用state()函数获取当前套接字状态,并根据需要处理相应状态。例如,可以使用信号槽机制来捕获状态变化,以便在连接建立或断开时执行相应操作。...当套接字被连接后则可以通过socket->write()方法向上线客户端发送一个字符串,此处我们以发送lyshark为例,发送时需要向write()中传入两个参数

    49912

    想要创建一个基于TCP实现http服务器,应该怎么做?

    http协议URL格式: http: //host[:port][abs_path] ,http表示使用http协议来进行资源定位;host主机域名;port端口号,一般有默认;abs_path...这里主要介绍项目中涉及URL两种格式—URL带参数不带参数。 GET方法使用参数URL,即传递参数会使用?...二、服务器实现基本思路 1、http协议基于TCP通信协议,因此,实现web服务器第一步至少要能实现两个主机不同进程之间TCP通信。...cgi模式: 上述这张图描述了运行cgi时过程,首先服务器要从浏览器上读取参数,然后需要fork出一个子进程进行cgi部分处理,父进程通过环境变量方式将参数转交给子进程,子进程运行完成后,...html格式页面发送,而是将底层实现代码展示在浏览器,并且在调试时将本来打印调试信息会打印到网页上(在回应空行时将send期望发送数值太大,本来需要发送两个字节内容) 解决:先检查代码

    3.8K150

    RoboMaster TT 无人机microPython编程.1

    (1000) # 状态码,这个不懂 # 又懂了,就是飞机时时刻刻发送很多数据。...这个数据不停更新,上面的命令相当于一个读取频率 # 然后用print语句来打印相关information while True: protocol.getTelloStatus(1000...# 后面的两个参数跳跃点 protocol.sendTelloCtrlMsg("setyaw "+str(0)+" "+"m-1") # 就是飞机在挑战卡上面旋转多少度 这些具体控制命令 这两个地方需要进行测试...这个数据不停更新,上面的命令相当于一个读取频率 # 然后用print语句来打印相关information while True: protocol.getTelloStatus(1000...这个数据不停更新,上面的命令相当于一个读取频率# 然后用print语句来打印相关information。读取这个信息来做一动作 可以读取这些

    1.9K40

    树莓派 GPIO操作.1(Python版本)

    今天最后一篇文章,一共7篇,很久没有这么满了。后面的硬件就不测试了,大概率正确源代码。而且这些代码放在Jetson Nano上面也是可以。...源码都是主机上面,环境Python3.7: ? 如图所示 ? 先安装urllib3,以前爬虫2 ? 安装一些插件,教我做人 https://copilot.github.com/ ?...这是它第一种用法,直接读取命令行数组 python.exe .\url.py a b c d 也可以这样执行 ? 后面捕获参数 ? 树莓派B+ ?...创建一个复选框 通过传递值,来改变复选框状态 bool变量设置复选框状态 ? 传递函数,在这里硬件产生关联 https://zhuanlan.zhihu.com/p/75872830?...定义了一个App类,如果你有两个函数需要一起管理就考虑类吧 ---- 初始化韩苏护创建一个check_var成员变量,包含了一个bool变量,未组件实现了变量选项。

    1.2K40

    Python:网络编程

    这里地址一个格式为 (host, port) 元组,其中 host 主机名(如 www.example.com),而 port 端口号(一个整数)。...在客户端程序中,通过将 gethostname 调用替换为服务器机器主机名,可分别在两台通过网络连接机器上运行这两个程序。...select 返回三个序列(即一个长度为 3 元组),其中每个序列都包含相应参数中处于活动状态文件描述符。例如,返回一个序列包含有数据需要读取所有输入文件描述符。...这种工作使用对象 self.transport 完成,它包含一个 write 方法。这个对象还有一个 client 属性,其中包含客户端地址(主机端口)。...如果要同时处理多个连接,必须使用支持分叉或线程化混合类。 select poll:这两个函数让你能够在一组连接中找出为读取写入准备就绪连接。

    1.2K20

    xv6(18) 控制台输入输出

    另外 $xv6$ 里有两个控制台,一个 $qemu$ 模拟出来一个窗口,另一个通过串口连接到远程控制台,在配置 $qemu$ 时候有个 -serial mon : stdio 选项,这个选项使得虚拟出来串口重定向到主机标准输入输出...键盘控制器有 4 个 8 bits 寄存器,Status Register Control Register,两者共用一个端口 0x64,读时候状态寄存器,时候控制寄存器。...Input Buffer Output Buffer,两者共用一个端口 0x60,读时候输出缓冲器,时候输入缓冲器。 状态寄存器: bit0:1 表示输出缓存器满,CPU 读取后清零。...$ 那么端口地址就是 $3b4h-3b5h$,如果 1 的话端口地址就是 $3d3h-3d5h$,默认情况 1 所以使用 $3d4h-3d5h$ 两个端口 这两个寄存器形式应该很熟悉吧,这明显用...} 上面这个函数就是将 $cgaputc$ $uartputc$ 结合起来,只是针对 '\b' 处理有所区别,一般情况下这两个函数接收参数都是标准前 $128$ 个 $ASCII$ 码,$BACKSPACE

    34410

    Kali基本扫描工具:Fping、Nping、Arping、Nbtscan、onesixtyone工具使用

    Fping工具使用 fping简介 fping一个小型命令行工具,用于向网络主机发送ICMP回应请求,类似于ping,但在ping多个主机时性能要高得多。...-g, --generate 通过指定开始结束地址来生成目标列表 -l, --loop 循环发送ping -s, --stats 显示最终状态 -m, --all ping目标主机多个网口 -q,...可以调整协议头中字段,例如可以设置TCPUDP端口目的端口。...1 -r:输出时候只打印MAC,脚本时候用得到,不用自己对结果awk了 -R:输出时候只打印IP,上面一样 -q:表示不打印输出,脚本不想打印输出时候,应该用到 -w deadline:...如果需要使用NetBIOS协议访问目标主机NetBIOS服务,就要掌握目标主机NetBIOS名称。主要针对Windows主机

    5K30

    STM32通信模拟SPI

    SPI通过片选引脚选择从机,一个片选一个从机,因此在多从机结构中,需要占用较多引脚,而I²C通过设备地址选择从机,只要设备地址不冲突,始终只需要两个引脚。...主机从机都有一个移位寄存器,主机移位寄存器数据经过MOSI将数据写入从机移位寄存器,此时从机移位寄存器数据也通过MISO传给了主机,实现了两个移位寄存器数据交换。...无论主机还是从机,发送接收都是同时进行,如同一个“环”。 如果主机只对从机进行操作,主机只需忽略接收从机数据即可。如果主机读取从机数据,需要主机发送一个空数据来引发从机发送数据。...首先主机从机都选择同一传输模式。然后主机片选拉低,选中从机。接着在时钟驱动下,MOSI发送数据,同时MISO读取接收数据。最后完成传输,取消片选。...,再读取MISO电平,得知传入数据; 52行:最后SPI读取完后,拉低时钟,进入空闲状态; 前面提到SPI传输可以看作一个虚拟环形拓扑结构,即输入输出同时进行。

    1.2K20

    Python 网络编程

    在 TCP/IP 模型中, 主要两个协议 TCP/IP 分别属于传输层互联网层。在互联网层中,标志主机方法使用IP地址,如192.168.0.1就是一个内网主机 IP 地址。...,那么,数据包将在本子网内循环,直到超时并抛弃,使数据不能正确到达目标主机,导致网络传输错误;如果将子网掩码设置得过小,那么就会将本来属于同一子网内机器之间通信当做跨子网传输,数据包都交给缺省网关处理...动态分配指当一个系统进程或应用程序进程需要网络通信时,它向主机申请一个端口主机从可用端口号中分配一个供它使用。当这个进程关闭时,同时也就释放了所占用端口号。...客户端发送了两个数据包,但是在服务器端接受 data1 时候,把这两个数据全部接受了,这种显现就是黏包。...而且进程创建和销毁也是非常消耗资源,所以如果进行一些本来就不需要多少耗时任务你会发现多进程甚至比单进程还要慢 线程开发 Python 标准库提供了两个模块:thread threading

    12110

    来自斯坦福廉价机器狗.中

    在硬链接情况下,参数“目标”被链接至[链接名]。如果[链接名]一个目录名,系统将在该目录之下建立一个或多个与“目标”同名链接文件,链接文件被链接文件内容完全相同。...实现里面有一个单独程序 ,joystick.py发布这些 UDP 消息,并负责通过蓝牙从 PS4 控制器读取输入。 控制器完成大部分工作,在状态(小跑、行走、休息等)之间切换并生成伺服位置目标。...站姿控制器摆动控制器都以相对于身体重心笛卡尔坐标生成目标位置。使用笛卡尔坐标进行站姿挥杆规划很方便,但我们现在需要将它们转换为运动角度。...接下来源码库库,一直以为小学生意思 假如我们就以库引入顺序作为其功能对最终机器人贡献,那对机器人最重要就是姿态控制了。 ? 姿态测量单元 ? 只有三个函数而已 ?...其实用户需要地方在这里,别的地方牵一而全身动 ? 如果你做了自己尺寸,更改参数在这里 ? 这些参数车体构成材料质量相关 ? 这些参数控制步态,就是走路样子 ?

    78830

    浅析Icmp原理及隐蔽攻击方式

    它是TCP/IP协议簇一个子协议,用于在IP主机、路由器之间传递控制消息。控制消息指网络通不通、主机是否可达、路由是否可用于网络本身消息。...在这个回送请求报文里,除了类型代码字段,还被追加了标识符序号字段。标识符序号字段分别是16 位字段。ping 命令在发送回送请求报文时,在这两个字段里填入任意值。...但是,收到回送回答报文里只是类型代码的话,发送方计算机将无法判断它是否自己发出去请求回答。因此,前面说到标识符序号字段就有它意义了。...将这两个值与回送回答报文中相同字段值一比较,送行方计算机就能够简单地检测回送回答是否正确了。...下面用win7做边界web服务器,然后把内网域控3389端口转发到外网kali上面。

    2.3K10

    Nmap安全扫描器

    要跳过ping扫描端口扫描,同时仍然允许NSE运行,请同时使用这两个选项 -Pn -sn。...这种扫描类型主要优点,它绕过了防火墙并仅过滤TCP。例如,曾经拥有一个Linksys BEFW11S4无线宽带路由器。...当管理员专门阻止回显请求数据包而忘记了其他ICMP查询可以用于相同目的时,这两个查询将非常有用。...当我悲惨地失败并把锯齿状锯给一个真正机械师时,他总是在一个巨大工具箱里闲逛,直到拉出完美的小物件,这使工作变得轻松。端口扫描技术与此类似。...Nmap使用此API来获取有关每次连接尝试状态信息,而不是直接读取原始数据包响应。 如果可以使用SYN扫描,通常是更好选择。

    1.6K40

    C#网络编程(基本概念操作) - Part.1

    在这一过程中,它首先需要知道进程B位置(主机地址端口号)。随后发送一个不包含实际数据请求报文,我们可以将这个报文称之为“hello”。...可以看出两个程序之间对话通过套接字这个出入口来完成,实际上套接字包含最重要也就是两个信息:连接至远程本地端口信息(本机地址端口号),连接到远程端口信息(远程地址端口号)。...在.NET中,尽管我们可以直接对套接字编程,但是.NET提供了两个类将对套接字编程进行了一个封装,使我们使用能够更加方便,这两个TcpClientTcpListener,它与套接字关系如下:...服务器持续保持对端口侦听状态,每当有主机上线时,首先连接至服务器,服务器收到连接后,将该主机位置(地址端口号)发往其他在线主机(绿色箭头标识)。...随后,我们打印了这个连接消息:本机Ip地址端口号,以及连接到远程Ip地址端口号。

    1.4K51

    Java基础篇 |网络编程深入解析

    2.2端口套接字 1.关于端口 在计算机网络中,端口(Port)指一种标识网络服务机制,用于标识不同网络应用程序数字。每个TCP或UDP连接都需要一个端口来确定要发送或接收数据类型。...表示方法 套接字Socket =(IP地址:端口号),套接字表示方法点分十进制lP地址后面写上端口号,中间用冒号或逗号隔开。 每一个传输层连接唯一地被通信两端两个端点(即两个套接字)所确定。...,并且消息有序 2.什么TCP连接 ⽤于保证可靠性流量控制维护某些状态信息,这些信息组合,包括Socket、序列号窗口大小称为连接 所以一个TCP连接需要客户端和服务端达成三个信息共识...设定服务器地址 除了不带参数构造方法,其他构造方法都需要参数中设定服务器地城,包括服务器 IP 或主机名,以及端口 // address表示主机IP地址 Socket(InetAddress....四次挥手 5.UDP通信程序 5.1UDP发送数据 Java中UDP通信 UDP协议一种不可靠网络协议,它在通信两端各建立一个Socket对象,但是这两个Socket只是发送,接收数据对象,

    1K30
    领券