首页
学习
活动
专区
工具
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)使用GPIO1和GPIO3引脚。...其中GPIO1引脚是TX0,GPIO3是RX0。 串行端口1(UART1)使用GPIO2和GPIO8引脚。其中GPIO2引脚是TX1,GPIO8是RX1。....给MCU写程序其实是相当于写底层驱动.需要对照引脚来写.还得考虑功能复用带来得各种冲突.总之是个技术活,建议打印出来,不停得对照. ?

3.3K20

安装mitmproxy以及遇到的坑和简单用法

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

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

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

    1.8K10

    python面试

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

    1.9K52

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

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

    40110

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

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

    45810

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

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

    61812

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

    Python:网络编程

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

    1.2K20

    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

    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

    36810

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

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

    5.3K30

    STM32通信模拟SPI

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

    1.3K20

    Python 网络编程

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

    13310

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

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

    1.4K51

    浅析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

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

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

    79630
    领券