Scapy의 sniff() 기능을 사용하여 이더넷 패킷을 스니핑합니다. pkt라는 변수에 저장합니다. 나중에 pkt의 내용을 다른 변수 buffpkt에 추가하여 동일한 사본을 만들고 싶습니다. 처음에는 두 변수를 모두 list로 선언했지만 일단 pkt가 sniff() 출력을 저장하면 유형이 인스턴스로 변경됩니다. 아래는 코드입니다.목록을 복사 할 수 없습니다.
pkt=[]
buffpkt=[]
pkt=sniff(prn=lambda x:x.sprintf("{IP : %IP.src% %IP.dst%\n\n} "),timeout=5,store=1)
buffpkt=pkt
나는 buffpkt에 결과를 추가하여 스니핑 모든 패킷의 큰 목록을 만들고 싶어하지만 난 할 수 없습니다. 어떤 제안?
을하지만이 날 새로운 결과를 추가하는 데 도움이 될 것입니다? – Abhinav
buffpkt + = pkt [:] WORKS! – Abhinav
@sHoM'sniff'의 리턴 값은 실제로는리스트가 아니라리스트와 같은 접근을 구현하는 커스텀 객체입니다 ('__getitem__' 함수 사용). 그것이 유형이'instance' 인 이유입니다. –