包含python实现icmp的词条

本文目录一览:

我想使用python写一个循环执行terminal下面的命令,比如我现在要ping 192.168.1.1,我要循环ping 3次

import os

os.system(‘ping -c 3 10.34.40.22’)

PING 10.34.40.22 (10.34.40.22) 56(84) bytes of data.

64 bytes from 10.34.40.22: icmp_seq=1 ttl=64 time=0.501 ms

64 bytes from 10.34.40.22: icmp_seq=2 ttl=64 time=0.289 ms

64 bytes from 10.34.40.22: icmp_seq=3 ttl=64 time=0.277 ms

— 10.34.40.22 ping statistics —

3 packets transmitted, 3 received, 0% packet loss, time 1998ms

rtt min/avg/max/mdev = 0.277/0.355/0.501/0.105 ms

非常简单的,哈哈

用python篡改icmp报文再发送给接收方

程序处理上有些问题,建议深入研究一下ICMP协议。下面是Python 3的一个ICMP的简单实现,可以参考一下。

import socket

import struct

def checksum(source_string):

    sum = 0

    countTo = (len(source_string)/2)*2

    count = 0

    while countcountTo:

        thisVal = ord(source_string[count + 1:count + 2])*256 + ord(source_string[count:count + 1])

        sum = sum + thisVal

        sum = sum  0xffffffff 

        count = count + 2

    if countTolen(source_string):

        sum = sum + ord(source_string[len(source_string) – 1])

        sum = sum  0xffffffff 

    sum = (sum  16)  +  (sum  0xffff)

    sum = sum + (sum  16)

    answer = ~sum

    answer = answer  0xffff

    answer = answer  8 | (answer  8  0xff00)

    return answer

def ping(ip):

    rawsocket1=socket.socket(socket.AF_INET,socket.SOCK_RAW, socket.getprotobyname(‘icmp’))

    packet = struct.pack(‘!BBHHH8s’, 8, 0, 0, 0, 0, b’abcdefgh’)

    chksum=checksum(packet)

    packet = struct.pack(‘!BBHHH8s’, 8, 0, chksum, 0, 0, b’abcdefgh’)

    rawsocket1.sendto(packet, (ip, 1))

ping(‘10.172.23.254’)

请大牛指教python问题。通过pip方式下载了个ping.py(改名为:ping_pip.py)代码,测试的时候遇到问题。

别快速的ping很多的地址。 有可能防火墙会拦截, 也有可能是文件句柄数超过了操作系统的限制。

如果出错了。你忽略它,然后重试一次。应该可以解决这个问题。

原创文章,作者:WVYC,如若转载,请注明出处:https://www.506064.com/n/148760.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
WVYCWVYC
上一篇 2024-11-03 15:17
下一篇 2024-11-03 15:17

相关推荐

  • Python列表中负数的个数

    Python列表是一个有序的集合,可以存储多个不同类型的元素。而负数是指小于0的整数。在Python列表中,我们想要找到负数的个数,可以通过以下几个方面进行实现。 一、使用循环遍历…

    编程 2025-04-29
  • 如何查看Anaconda中Python路径

    对Anaconda中Python路径即conda环境的查看进行详细的阐述。 一、使用命令行查看 1、在Windows系统中,可以使用命令提示符(cmd)或者Anaconda Pro…

    编程 2025-04-29
  • Python计算阳历日期对应周几

    本文介绍如何通过Python计算任意阳历日期对应周几。 一、获取日期 获取日期可以通过Python内置的模块datetime实现,示例代码如下: from datetime imp…

    编程 2025-04-29
  • Python周杰伦代码用法介绍

    本文将从多个方面对Python周杰伦代码进行详细的阐述。 一、代码介绍 from urllib.request import urlopen from bs4 import Bea…

    编程 2025-04-29
  • Python中引入上一级目录中函数

    Python中经常需要调用其他文件夹中的模块或函数,其中一个常见的操作是引入上一级目录中的函数。在此,我们将从多个角度详细解释如何在Python中引入上一级目录的函数。 一、加入环…

    编程 2025-04-29
  • Python程序需要编译才能执行

    Python 被广泛应用于数据分析、人工智能、科学计算等领域,它的灵活性和简单易学的性质使得越来越多的人喜欢使用 Python 进行编程。然而,在 Python 中程序执行的方式不…

    编程 2025-04-29
  • python强行终止程序快捷键

    本文将从多个方面对python强行终止程序快捷键进行详细阐述,并提供相应代码示例。 一、Ctrl+C快捷键 Ctrl+C快捷键是在终端中经常用来强行终止运行的程序。当你在终端中运行…

    编程 2025-04-29
  • Python清华镜像下载

    Python清华镜像是一个高质量的Python开发资源镜像站,提供了Python及其相关的开发工具、框架和文档的下载服务。本文将从以下几个方面对Python清华镜像下载进行详细的阐…

    编程 2025-04-29
  • 蝴蝶优化算法Python版

    蝴蝶优化算法是一种基于仿生学的优化算法,模仿自然界中的蝴蝶进行搜索。它可以应用于多个领域的优化问题,包括数学优化、工程问题、机器学习等。本文将从多个方面对蝴蝶优化算法Python版…

    编程 2025-04-29
  • Python字典去重复工具

    使用Python语言编写字典去重复工具,可帮助用户快速去重复。 一、字典去重复工具的需求 在使用Python编写程序时,我们经常需要处理数据文件,其中包含了大量的重复数据。为了方便…

    编程 2025-04-29

发表回复

登录后才能评论