NIC 장치를 선택하는 코드
using SharpPcap;
using System;
using System.Data;
namespace packat
{
class Program
{
static void Main(string[] args)
{
string NICname;
int itemp;
ICaptureDevice NIC = null;
//Console.WriteLine("NIC(랜카드) 장치 숫자 : " + SharpPcap.CaptureDeviceList.Instance.Count.ToString());
itemp = 0;
foreach (ICaptureDevice item in SharpPcap.CaptureDeviceList.Instance)
{
itemp++;
string Nmae = item.ToString().Split('\n')[1];
Console.WriteLine("{0}:{1}" ,itemp , Nmae.Substring(Nmae.IndexOf(':') + 1));
}
if (0 == itemp)
{
Console.WriteLine("검색되는 NIC 가 없어 종료 ");
return;
}
int temp_num;
for (; ; )
{
Console.WriteLine("캡처에 사용할 NIC 를 선택하시오 (1 ~ {0}) : ", itemp);
temp_num = int.Parse(Console.ReadLine());
if (temp_num < 0 )
{
continue;
}
if (temp_num > itemp)
{
continue;
}
NIC = SharpPcap.CaptureDeviceList.Instance[temp_num - 1];
break;
}
Console.WriteLine(NIC);
}
}
}
HexaViewer ( 헥사 파일프린터 )
using System;
using System.Runtime.CompilerServices;
using SharpPcap;
namespace HexaViewer
{
class HexaView
{
static void DrawHead()
{
drawLine();
Console.Write("ADDRESS ");
for (int i = 0; i < 16; i++)
{
Console.Write("{0:X02} ", i);
if (7 == i )
{
Console.Write(" ");
}
}
Console.Write(" ");
for (int i = 0; i < 16; i++)
{
Console.Write("{0:X}", i);
}
Console.WriteLine();
drawLine('-');
}
static void drawLine()
{
for (int i = 0; i < 75; i++)
{
Console.Write("=");
}
Console.WriteLine();
}
static void drawLine(char cChar)
{
for (int i = 0; i < 75; i++)
{
Console.Write(cChar);
}
Console.WriteLine();
}
public static void Print(byte[] data)
{
DrawHead();
int raw = data.Length / 16;
for (int i = 0; i < raw; i++)
{
Console.Write("{0:X08} ", i*16);
for (int j = 0; j < 16; j++)
{
Console.Write("{0:X02} ", data[(i*16)+j]);
if (j == 7)
{
Console.Write(" ");
}
}
Console.Write(" ");
for (int j = 0; j < 16; j++)
{
if (32 > data[(i * 16) + j] || data[(i * 16) + j] > 127)
{
Console.Write(".");
}
else
{
Console.Write((char)data[(i * 16) + j]);
}
}
Console.WriteLine();
}
// 마지막 줄 예외 처리
if (data.Length > raw * 16)
{
Console.Write("{0:X08} ", raw * 16);
for (int i = raw * 16; i < data.Length; i++)
{
Console.Write("{0:X02} ", data[i]);
if (i%16 == 7)
{
Console.Write(" ");
}
}
Console.Write(" ");
if (data.Length%16 < 8)
{
Console.Write(" ");
}
for (int i = 0; i <(16 - data.Length%16); i++)
{
Console.Write(" ");
}
for (int i = raw * 16; i < data.Length; i++)
{
if (32 > data[i] || data[i] > 127)
{
Console.Write(".");
}
else
{
Console.Write((char)data[i]);
}
}
}
Console.WriteLine();
drawLine();
}
}
}
'공부,일 > C# 네트워크' 카테고리의 다른 글
packet 분석기 만들기 (4) (0) | 2021.09.28 |
---|---|
packet 분석기 만들기 (3) (0) | 2021.09.15 |
packet 분석기 만들기 (1) (0) | 2021.09.10 |
20210818 네트워크 프로그래밍 채팅 프로그램 만들기 (M:M) (1) | 2021.08.18 |
1:1 채팅 만들기 socket (0) | 2021.08.17 |
댓글