반응형

소스 코드 353

[pcap 라이브러리] 5. 필터 적용하여 패킷 캡쳐하기(소스 포함)

필터 적용하여 패킷 캡쳐하기필터를 적용하려면 먼저 컴파일후에 설정해야 한다. 필터는 tcpdump의 필터식을 사용한다.필터 컴파일하기int pcap_compile(pcap_t *handle, struct bpf_program *fcode, const char *fstr, int opt, bpf_u_int32 mask);필터 설정하기int pcap_setfilter(pcap_t *p, struct bpf_program *fp)//pc_filter.c#include "core_ehp.h" void catch_handler(u_char *args,cp_pkthdr *handle,cu_char *packet);void decode_eth(cu_char *base);int decode_ip(cu_char *bas..

[pcap 라이브러리] 3. 패킷 스니핑 소스(pcap_lookupdev, pcap_open_live, pcap_next, pcap_close)

패킷 스니핑 소스캡쳐할 수 있는 인터페이스 찾기char * pcap_lookupdev(char *ebuf);캡쳐 핸들 열기pcap_t *pcap_open_live(char *dev,int csize,int promisc, int msec,char *ebuf);캡쳐하기const u_char *pcap_next(pcap_t handle, struct pcap_pkthdr *header);캡쳐 핸들 닫기void pcap_close(pcap_t *handle); /*pc_sniff.c*/#include void dump(const u_char *packet,int len);int main(){ struct pcap_pkthdr header; const u_char *packet; char errbuf[PCAP_..

[pcap 라이브러리] 2. 자신의 Network IP와 Mask값 확인하기 소스

자신의 Network IP와 Mask값 확인하기 소스 int pcap_lookupnet(const char *devname, bpf_u_int32 *pnet, bpf_u_int32 *pmask, char *ebuf); //pc_lookup.c#include int main() { char *dev; char errbuf[PCAP_ERRBUF_SIZE]; bpf_u_int32 net_ip; bpf_u_int32 mask; struct in_addr net_addr, mask_addr; if(!(dev = pcap_lookupdev(errbuf))) { printf("%s\n",errbuf); return 1; }//if if(pcap_lookupnet(dev, &net_ip, &mask, errbuf) <..

[C언어 소스] 성적 관리 프로그램 4가지 유형

[C언어 소스] 성적 관리 프로그램 4가지 유형 C언어로 프로그래밍할 때 데이터를 관리할 메모리를 언제 부여하게 할 것인가에 따라 여러 형태로 프로그램을 작성할 수 있습니다.이번에는 학생 성적 관리 프로그램을 4가지 유형으로 서로 비교합시다. 제공 기능1. 학생 데이터 입력2. 학생 데이터 삭제3. 학생 검색4. 목록 보기 전역 변수 사용 소스 보기동적 메모리 할당 이용 소스 보기학생 데이터를 위한 메모리도 동적 메모리 할당 이용 소스 보기 이중 연결리스트를 이용한 소스 보기

[C#] 방문자 패턴(Visitor Pattern) - 구현

25. 방문자 패턴(Visitor Pattern) [그림] 방문자 패턴(Visitor Pattern) 클래스 다이어그램 25.4 구현 반복자 패턴에 대한 예제 프로그램을 구현하는 순서는 Element 군, Visitor 군, MyTour와 데모 코드 순으로 하겠습니다. 25.4.1 Element 군 MyTour는 사진과 일기를 통합 관리하는 컬렉션 입니다. 사진과 일기와 같이 MyTour에서 관리 가능한 요소에 대한 기반 클래스를 Element라 정하고 사진을 Picture, 일기를 Diary라 정하겠습니다. 방문자 패턴에서는 요소에 따라 다르게 처리해야 할 기능들을 구체화 된 방문자 형식을 정의를 하고 실제 요소 형식에서는 단순히 방문자를 수용하는 메서드만 정의를 합니다. 즉, 실질적인 구현은 각 요소..

[C#] 템플릿 메서드 패턴(Template Method Pattern) - 구현

24. 템플릿 메서드 패턴(Template Method Pattern) [그림] 템플릿 메서드 패턴(Template Method Pattern) 클래스 다이어그램 24.4 구현 템플릿 메서드 패턴에 대한 예제 프로그램을 구현하는 순서는 EHApp, MyApp 순으로 하겠습니다. 24.4.1 EHApp EHApp 클래스에서 사용자에 노출할 메서드는 Do 메서드 하나입니다. 그리고, Do 메서드에서 수행할 작업 절차는 초기화, 사용자와 상호 작용, 해제화를 하는 것으로 정하였습니다. public void Do(){ InitInstance(); Run(); ExitInstance();} 그리고, 초기화와 해제화의 경우는 실제 작성할 응용의 목적에 따라 재 정의를 할 수 있어야 겠지요. protected vir..

[C#] 전략 패턴(Strategy Pattern) - 구현

23. 전략 패턴(Strategy Pattern) [그림] 전략 패턴(Strategy Pattern) 클래스 다이어그램 23.4 구현 전략 패턴에 대한 예제 프로그램을 구현하는 순서는 Picture, Viewer 군, PictureCollection과 데모 코드 순으로 하겠습니다. 23.4.1 Picture Picture는 단순히 사진 이름과 색조, 명도, 채도를 멤버로 갖는 클래스로 정의할께요. 전략 패턴을 설명하기 위한 시나리오에 의해 필요한 것이지 직접적으로 전략 패턴과 관련 있는 클래스는 아닙니다. Viewer.cs namespace Strategy { interface IView { void View(Picture picture); } } SimpleViewer.cs using System; n..

[C#] 상태 패턴(State Pattern) - 구현

22. 상태 패턴(State Pattern) [그림] 상태 패턴(State Pattern) 클래스 다이어그램 22.4 구현 상태 패턴에 대한 예제 프로그램을 구현하는 순서는 Iris와 Shutter, State 군, Camera와 데모 코드 순으로 하겠습니다. 22.4.1 Iris와 Shutter Iris와 Shutter는 단순히 조리개의 F값과 셔터 스피드를 조절하는 역할만 수행합니다. 특별히 상태 패턴과 관련이 있는 형식은 아닙니다. Shutter.cs namespace State { class Shutter { int speed =0; public int Up() { speed++; return speed; } public int Down() { if(speed>0) { speed--; } retu..

[C#] 감시자 패턴(Observer Pattern) - 구현

21. 감시자 패턴(Observer Pattern) [그림] 감시자 패턴(Observer Pattern) 클래스 다이어그램 21.4 구현 감시자 패턴에 대한 예제 프로그램을 구현하는 순서는 Subject와 Picture, IUpdate와 각 뷰어, 데모 코드 순으로 하겠습니다. 21.4.1 Subject와 Picture Subject는 상태 변경이 있을 때 감시자에게 변경을 통보하는 역할을 담당합니다. 이를 위해 감시자를 등록하는 메서드와 해제하는 메서드를 구현해야 합니다. 그리고, 상태 변경이 있을 때 등록된 모든 감시자들에게 변경된 사실을 통보를 하는 메서드도 구현합시다. Picture.cs using System; namespace Observer { class Picture:Subject { pu..

[C#] 메멘토 패턴(Memento Pattern) - 구현

20. 메멘토 패턴(Memento Pattern) [그림] 메멘토 패턴(Memento Pattern) 클래스 다이어그램 20.4 구현 메멘토 패턴에 대한 예제 프로그램을 구현하는 순서는 Snapshot, Picture, App와 데모 코드 순으로 하겠습니다. 20.4.1 Snapshot Snapshot 형식에서는 사진의 색조, 명도, 채도 정보를 얻어오는 속성을 노출하고 설정하는 속성은 은폐할 것입니다. 설정하는 속성을 은폐하는 이유는 신뢰성을 높이기 위해 다른 형식 개체에서 이들에 대한 값을 변경하지 못하도록 하기 위해서 입니다. Picture.cs using System; namespace Memento { class Picture { string name; int tone; int brightnes..

반응형