python模擬icmp包,python模擬發送udp包

本文目錄一覽:

我想用python腳本telnet電腦Ensp里的交換機,但是沒效果,也沒報錯,是有什麼問題嗎?求解答

 1、在備份配置之前進行ping操作,所有IP地址放在HW_IP_List.txt中,ping通的地址放到HW_IP_True.txt中,ping不通的地址放到HW_IP_False.txt中。

腳本文件icmp_reply.py

#!/usr/bin/python

# -*- coding:gb2312 -*-

#import tab

import time,os

start_time = int (time.time())

def hw_ping_test():

ips = open(‘HW_IP_List.txt’,’r’)

ip_True = open(‘HW_IP_True.txt’,’w’)

ip_False = open(‘HW_IP_False.txt’,’w’)

count_True,count_False=0,0

for ip in ips.readlines():

ip = ip.replace(‘\n’,”)

return1= os.system(‘ping -n 1 -w 1 %s’%ip)

if return1 :

print ‘ping %s is fail’%ip

ip_False.write(ip+’\n’)

count_False += 1

else:

print ‘ping %s is ok’%ip

ip_True.write(ip+’\n’)

count_True += 1

ip_True.close()

ip_False.close()

ips.close()

end_Time = int(time.time())

print “time(sencond):”,end_Time – start_time,”s”

print “ping OK IP:”,count_True,” ping False IP:”,count_False

hw_ping_test()

2、編輯核心腳本,調用icmp_reply.py,程序執行時會先自動運行icmp_reply.py,調用生成的HW_IP_True.txt文件,先要選擇設備類型,然後選擇執行的動作,輸入TFTP服務器地址,程序就開始執行選擇的相應的動作。

接收icmp數據包

1.你把防火牆設置成中級看看還有沒有騷擾。

如果沒有騷擾,那就OK了。

如果有騷擾進入下一步

2。ICMP包是個ping 包,你會就收ICMP數據包 有兩種可能,別人ping你,要求你回答,或者你ping別人,別人回答你。

由於你是用的路由器,這麼多不同的人ping你,最大的可能是你ping了他們所有的人,然後他們回答你。ICMP應該是不能IP欺騙的。

有兩種辦法可以判斷是不是你電腦中毒了,第一 更換你的IP地址 ,將最後的101改為102,如果還有這個情況基本上就是你中毒了

第二,下載個Wireshark軟件 抓取數據包,點擊capture—option-start

在filter中輸入 ICMP ,然後你就可以看到ICMP包的情況了,如果

目標地址是192.168.1.101 ,例如下面

sourc是119.116.182.167 (等等), destination是192.168.1.101

info是Echo (ping) reply

則很顯然是你的機器有木馬 亂往外面發ICMP數據請求包(換句話說是亂ping外網阻塞自己網絡)。

如果確認了這些,就可以試一下ping病毒 或ping木馬的專殺工具,

或者重新裝下網卡。。。也許可以解決。(知道原理,害過人,可惜沒有自己中過這種病毒。按常理來說如果是病毒,應該可以少毒少出來的吧,所以提供方法供你查找原因,如果不知道如何用Wireshark.

請大牛指教python問題。通過pip方式下載了個ping.py(改名為:ping_pip.py)代碼,測試的時候遇到問題。

別快速的ping很多的地址。 有可能防火牆會攔截, 也有可能是文件句柄數超過了操作系統的限制。

如果出錯了。你忽略它,然後重試一次。應該可以解決這個問題。

如何使用發包工具構造icmp報文

如何使用發包工具構造icmp報文

使用的是類型8和0,其過程如下:

ICMP ECHO(Type 8) 和ECHO Reply (Type 0)

我們使用一個ICMP ECHO數據包來探測主機地址是否存活(當然在主機沒

有被配置為過濾ICMP形式),通過簡單的發送一個ICMP ECHO(Type 8)數據包到目標

主機,如果ICMP ECHO Reply(ICMP type 0)數據包接受到,說明主機是存活狀態。

如果沒有就可以初步判斷主機沒有在線或者使用了某些過濾設備過濾了ICMP的REPLY。

|————————————————————-

| |

| —— ICMP ECHO request —— |

| |HOST| ——————————— |HOST| |

| | A | ———————– | B | |

| | | 如果存活或者沒有過濾 | | |

| —— 將返回ICMP RCHO REPLY —— |

| |

————————————————————–

這種機制就是我們通常所用的ping命令來檢測目標主機是否可以ping到。

用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編寫ping程序出現socket.error: [Errno 10013] 錯誤

錯誤號的解釋

以一種訪問權限不允許的方式做了一個訪問套接字的嘗試。

試試管理員權限,不行換到xp上試試。

原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/189157.html

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-11-29 08:01
下一篇 2024-11-29 08:01

相關推薦

  • 如何查看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列表是一個有序的集合,可以存儲多個不同類型的元素。而負數是指小於0的整數。在Python列表中,我們想要找到負數的個數,可以通過以下幾個方面進行實現。 一、使用循環遍歷…

    編程 2025-04-29
  • Python中引入上一級目錄中函數

    Python中經常需要調用其他文件夾中的模塊或函數,其中一個常見的操作是引入上一級目錄中的函數。在此,我們將從多個角度詳細解釋如何在Python中引入上一級目錄的函數。 一、加入環…

    編程 2025-04-29
  • python強行終止程序快捷鍵

    本文將從多個方面對python強行終止程序快捷鍵進行詳細闡述,並提供相應代碼示例。 一、Ctrl+C快捷鍵 Ctrl+C快捷鍵是在終端中經常用來強行終止運行的程序。當你在終端中運行…

    編程 2025-04-29
  • 蝴蝶優化算法Python版

    蝴蝶優化算法是一種基於仿生學的優化算法,模仿自然界中的蝴蝶進行搜索。它可以應用於多個領域的優化問題,包括數學優化、工程問題、機器學習等。本文將從多個方面對蝴蝶優化算法Python版…

    編程 2025-04-29
  • Python清華鏡像下載

    Python清華鏡像是一個高質量的Python開發資源鏡像站,提供了Python及其相關的開發工具、框架和文檔的下載服務。本文將從以下幾個方面對Python清華鏡像下載進行詳細的闡…

    編程 2025-04-29
  • Python字典去重複工具

    使用Python語言編寫字典去重複工具,可幫助用戶快速去重複。 一、字典去重複工具的需求 在使用Python編寫程序時,我們經常需要處理數據文件,其中包含了大量的重複數據。為了方便…

    編程 2025-04-29
  • Python程序需要編譯才能執行

    Python 被廣泛應用於數據分析、人工智能、科學計算等領域,它的靈活性和簡單易學的性質使得越來越多的人喜歡使用 Python 進行編程。然而,在 Python 中程序執行的方式不…

    編程 2025-04-29

發表回復

登錄後才能評論