首页
学习
活动
专区
工具
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.2K20

安装mitmproxy以及遇到简单用法

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

1.8K20

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

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

26910

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

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

20810

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

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

16111

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

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

29810

python面试

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

1.9K51

想要创建一个基于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.7K150

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

24010

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主机

4.5K30

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.8K40

树莓派 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

STM32通信模拟SPI

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

98520

第五章 Mininet常用命令参数介绍

(4)--mac 使用这个参数可以让MAC地址从小到达排列,使得复杂网络更清晰,容易辨识各个组件MAC地址。不使用这个参数的话,复杂网络容易混乱。...2.用户查看设备信息状态命令参数 这些命令在 mininet> 命令模式下使用,仅查看网络设备状态信息,不对网络结构进行改变 net             查看链路信息,两个设备之间之间连线,...检测前两个主机连通性             dump         查看节点信息 3.更改网络结构命令参数 (1)py命令  执行Python表达式,例如添加网络设备。...下面举例说明: 在mininet自带网络拓扑基础上,我们想添加一个主机h3,并且让它s1之间连通,且可以其他两个主机h1h2互相ping通。...测试所有主机都是连通 (2)link(links不同),用法如下: link s1 s2 down/up              禁用/开启s1s2这两个节点之间链路 (3)iperf iperf

1.8K10

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

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

1.3K51

Nmap安全扫描器

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

1.5K40

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

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

2K10

Dji RoboMaster Tello SDK封装.1(对视频接口使用cv2.VideoCapture接收))

因为打包SDK指令,所以就一个类就好 这里已经封装好一些指令 这里有的计算机端口打开失败,这里电脑win10 这个版本号 点击高级设置 新建一个入站规则 选择端口 因为TT通信方式都是...) # 在将ip端口打包成一个合成地址 self.log = [] # 对于日志记录一个空列表来放 # 初始化接收线程 self.receive_thread..._receive_thread) # 这个新建立一个线程时候要执行语句,target参数最重要,要给一个callback对象才可以运行 # 后面的参数一个函数,在后面有...接着线程函数,要不停运行 这个开关 这个函数,整个SDK初衷 官方视频接口,能力不够。...字符串方法打印 # 这两个语句就是日志 # 检查命令是否超时(基于“MAX_out_TINE”中值) start = time.time() # 在日志中未接收到

1.2K30

Netty实战专栏 | 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只是发送,接收数据对象,

31710
领券