溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

Centos安裝python3與scapy模塊的問題如何解決

發(fā)布時(shí)間:2022-07-08 09:23:00 來源:億速云 閱讀:213 作者:iii 欄目:開發(fā)技術(shù)

今天小編給大家分享一下Centos安裝python3與scapy模塊的問題如何解決的相關(guān)知識(shí)點(diǎn),內(nèi)容詳細(xì),邏輯清晰,相信大部分人都還太了解這方面的知識(shí),所以分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后有所收獲,下面我們一起來了解一下吧。

一、CentOS安裝Python3

centos7自帶版本是python2.7

如果要用的3.0以上的版本需要手動(dòng)安裝

1、先查看系統(tǒng)python的位置在哪兒

whereis python

Centos安裝python3與scapy模塊的問題如何解決

 python2.7默認(rèn)安裝是在 /usr/bin目錄中,切換到/usr/bin/

cd /usr/bin/
ll python*

從下面的圖中我們可以看到,python指向的是python2,python2指向的是python2.7,因此我們可以裝個(gè)python3,然后刪除python鏈接,將python3指向python3,然后python2指向python2.7,那么兩個(gè)版本的python就能共存了。

Centos安裝python3與scapy模塊的問題如何解決

2、下載python3的包之前,要先安裝相關(guān)的依賴包,用于下載編譯python3:

yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make

運(yùn)行了以上命令以后,就安裝了編譯python3所用到的相關(guān)依賴

3、默認(rèn)的centos7是沒有安裝pip,先添加epel擴(kuò)展源

yum -y install epel-release

4、安裝pip

pip install wget

5、用pip裝wget

pip install wget

6、用wget下載python3的源碼包,或者自己先下載好,上傳到服務(wù)器再安裝,如果網(wǎng)絡(luò)快可以直接安裝

wget https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz

7、編譯python3源碼包,解壓

xz -d Python-3.9.6.tar.xz
tar -xf Python-3.9.6.tar

8、進(jìn)入解壓后的目錄,依次執(zhí)行下面命令進(jìn)行手動(dòng)編譯

cd Python-3.9.6
./configure prefix=/usr/local/python3
make && make install

注意:

安裝過程中報(bào)錯(cuò):

ModuleNotFoundError: No module named '_ctypes'

make: *** [install] Error 1

Centos安裝python3與scapy模塊的問題如何解決

問題原因:
python3中有個(gè)內(nèi)置模塊叫ctypes,它是python3的外部函數(shù)庫(kù)模塊,提供了兼容C語(yǔ)言的數(shù)據(jù)類型,并通過它調(diào)用Linux系統(tǒng)下的共享庫(kù)(Shared library),此模塊需要使用centos7系統(tǒng)中外部函數(shù)庫(kù)(Foreign function library)的開發(fā)鏈接庫(kù)(頭文件和鏈接庫(kù))。
由于在centos7系統(tǒng)中沒有安裝外部函數(shù)庫(kù)(libffi)的開發(fā)鏈接庫(kù)軟件包,所以在安裝pip的時(shí)候就報(bào)了"ModuleNotFoundError: No module named ‘_ctypes’"的錯(cuò)誤。

解決方法:

yum install -y libffi-devel
# 如果沒有yum源,可下載包上傳
https://vault.centos.org/

然后重新./configure ... make ... make install

9、安裝依賴zlib、zlib-deve

yum install zlib zlib
yum install zlib zlib-devel

10、最后沒提示出錯(cuò),就代表正確安裝了,在/usr/local/目錄下就會(huì)有python3目錄
11、添加軟鏈接,將原來的鏈接備份

mv /usr/bin/python /usr/bin/python.bak

12、添加python3的軟鏈接

ln -s /usr/local/python3/bin/python3.9 /usr/bin/python3

13、測(cè)試是否安裝成功了

python3 -V

Centos安裝python3與scapy模塊的問題如何解決

 14、更改yum配置,因?yàn)槠湟玫絧ython2才能執(zhí)行,否則會(huì)導(dǎo)致yum不能正常使用

vi /usr/bin/yum

15、把第一行的#! /usr/bin/python 修改為如下

#! /usr/bin/python2

16、還有一個(gè)地方也需要修改

vi /usr/libexec/urlgrabber-ext-down

17、把第一行的#! /usr/bin/python 修改如下

#! /usr/bin/python2

18、啟動(dòng)python2

python2

Centos安裝python3與scapy模塊的問題如何解決

 19、啟動(dòng)python3

python3

Centos安裝python3與scapy模塊的問題如何解決

 二、安裝scapy模塊

Scapy是一個(gè)強(qiáng)大的基于Python的交互式包操作程序和庫(kù)。 它能夠偽造或解碼大量協(xié)議的數(shù)據(jù)包,在有線上發(fā)送它們,捕獲它們,使用pcapfile存儲(chǔ)或讀取數(shù)據(jù)包,匹配請(qǐng)求和答復(fù),等等。 它被設(shè)計(jì)為通過使用可用的默認(rèn)值來允許快速的數(shù)據(jù)包原型化。 它可以輕松地處理大多數(shù)經(jīng)典任務(wù),如掃描、跟蹤、探測(cè)、單元測(cè)試、攻擊或網(wǎng)絡(luò)發(fā)現(xiàn)(它可以替換hping,85%nmap, arpspoof, arp-sk, arping, tcpdump, wireshark, p0f等等)。它還能很好地執(zhí)行大多數(shù)其他工具無(wú)法處理的許多其他特定任務(wù),如發(fā)送無(wú)效幀、注入您自己的802.11幀、組合技術(shù)(VLAN跳變+ARP緩存中毒、WEP保護(hù)信道上的VoIP解碼等)。

1、yum安裝相關(guān)依賴程序

yum -y install tcpdump graphviz ImageMagick

2、到GitHub上下載安裝包,進(jìn)行編譯安裝

#https://github.com/secdev/scapy
cd scapy-master/
python3 setup.py install

3、創(chuàng)建軟鏈接

ln -s /usr/local/python3/bin/python3.7 /usr/bin/python
ln -s /usr/local/python3/bin/pip3.7 /usr/bin/pip
ln -s /usr/local/python3/bin/scapy /usr/bin/scapy

4、scapy生成動(dòng)態(tài)路由軌跡圖代碼示例

#!/usr/bin/python3
#-*-coding:UTF-8-*-
import os,sys,time,subprocess
import logging,warnings
warnings.filterwarnings("ignore",category=DeprecationWarning) #屏蔽scapy無(wú)用警告信息
logging.getLogger("scapy.runtime").setLevel(logging.ERROR) #屏蔽模塊IPV6多余警告
from scapy.all import traceroute
domains = input('請(qǐng)輸入IP地址或域名地址:')
target = domains.split(' ')
dport = [80] #掃描的端口列表
if len(target) >=1 and target[0] !='':
res,unans = traceroute(target,dport=dport,retry=2) #啟動(dòng)路由跟蹤
res.graph(target="> test.svg") #生成svg矢量圖形
time.sleep(1)
subprocess.Popen("/usr/bin/convert test.svg test.png", shell=True)
#svg轉(zhuǎn)png格式
else:
print('IP/domain number of errors,exit')

以上就是“Centos安裝python3與scapy模塊的問題如何解決”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家閱讀完這篇文章都有很大的收獲,小編每天都會(huì)為大家更新不同的知識(shí),如果還想學(xué)習(xí)更多的知識(shí),請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI