mkex.pe.kr 사이트에 '똥떵어리'님이 올리신 글입니다.
안녕하세요 똥떵어리입니다.
허접하지만 팀이 될까 해서 하나 적어 보겠습니다.
192.168.0.1 ~ 192.168.0.50 사이에 있는 아이피 대역폭을 알아 내는 코드를 만들어 보겠습니다.
//일단은 시작과 끝 아이피를 만들어 냅니다.
System.Net.IPAddress StartAddress = System.Net.IPAddress.Parse("192.168.0.1");
System.Net.IPAddress EndAddress = System.Net.IPAddress.Parse("192.168.0.50");
//해당아이피를 Log값으로 변경합니다.
// 쉬프트 연산을 하여 Log값을 만들어 냅니다.
//GetAddressBytes 메소드는 아이피 주소를 배열 형태로 반환해주는 메소드 입니다.
long sAddress = ( (((long)StartAddress.GetAddressBytes()[0] ) << 24) | (((int)StartAddress.GetAddressBytes()[1]) << 16) | (((int)StartAddress.GetAddressBytes()[2]) << 8) | StartAddress.GetAddressBytes()[3]);
long eAddress = ( (((long)EndAddress.GetAddressBytes()[0] ) << 24) | (((int)EndAddress.GetAddressBytes()[1]) << 16) | (((int)EndAddress.GetAddressBytes()[2]) << 8) | EndAddress.GetAddressBytes()[3]);
//시작 아이피 부터 끝 아이피 까지 루프를 작동합니다.
For(long i=sAddress;i<EndAddress+1;i++)
{
string sAddress = LongToAddress(i)
}
// Long형태를 IP어드레스 스트링으로 반환하는코드
private string LongToAddress(long lngIp)
{
try
{
System.Net.IPAddress TempAddress = new System.Net.IPAddress(lngIp);
byte[] arTemp = TempAddress.GetAddressBytes();
//배열을 뒤집는다.
Array.Reverse(arTemp);
//UInt32로 컨버팅한다.
lngIp = BitConverter.ToUInt32(arTemp,0);
return new System.Net.IPAddress(lngIp).ToString();
}
catch
{
return "";
}
}
작업하시다 필요하실수도 있을지 없을지 모르겠네요.. 하이턴 참고하시고 도움 되셨으면 추천 한방~~