이 신속하게 IP 주소를 해석하고 그것을 통해 반복에 관련된 뉘앙스를 소개하는 코드의 일부는 다음과 같습니다 원시적 예입니다.
상황이 32 비트 부호없는 정수로 IP 주소를보고 시작하면 매우 간단 얻을.
#include <stdio.h>
int
main (int argc, char *argv[])
{
unsigned int iterator;
int ipStart[]={192,168,0,100};
int ipEnd[] = {192,168,10,100};
unsigned int startIP= (
ipStart[0] << 24 |
ipStart[1] << 16 |
ipStart[2] << 8 |
ipStart[3]);
unsigned int endIP= (
ipEnd[0] << 24 |
ipEnd[1] << 16 |
ipEnd[2] << 8 |
ipEnd[3]);
for (iterator=startIP; iterator < endIP; iterator++)
{
printf (" %d.%d.%d.%d\n",
(iterator & 0xFF000000)>>24,
(iterator & 0x00FF0000)>>16,
(iterator & 0x0000FF00)>>8,
(iterator & 0x000000FF)
);
}
return 0;
}
그냥 ipStart
위해 요소의 어느 것도 확인하지 않고 ipEnd
는 IP 주소되지 않습니다 이상 255
을하고 너무 엉망 코드를 것이다.
출처
2009-07-01 13:52:56
nik
내가 잘못 질문을 읽고 있습니까? 실제로 192.158.0.255와 192.168.1.0 사이에있는 주소는 없습니다. 아마도 더 명확하게 편집해야 할 수도 있습니다. – alxp
alxp : 일반 IP 주소 맵이 사용되고 있다고 가정합니다. 적어도 집에있는 라우터에서는 123.234.123에 LAN을 실행하지 못하도록 막지 않습니다. # 주소 지정 범위를 완전히 잘못 사용 했음에도 불구하고 # – Sukasa
감사합니다. 나는 나의 질문을 editet. 범위는 실제로 말도 안돼 – Monobono