728x90
반응형
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 | #include<cstdio> #include<cstdlib> #include<cstring> #include<cmath> long long IPtoINT(char *IP_ADDR){ long long ret = 0; char *oct; for (int i = 3; i>=0;i--){ oct = strtok(IP_ADDR, "."); ret += pow(256., i) * atoi(oct); IP_ADDR = NULL; } return ret; } int main(){ char ip_addr[24]; scanf("%s", &ip_addr); printf("%lld",IPtoINT(ip_addr)); return 0; } |
58.184.70.1 이란 IP 주소가 있으면
58 * 256^3
+
184 * 256^2
+
70 * 256^1
+
1 * 256^0
의 계산 결과가 정수형 IP가 됨.
1 2 3 4 5 6 7 8 9 | void print_ip(int ip) { unsigned char bytes[4]; bytes[0] = ip & 0xFF; bytes[1] = (ip >> 8) & 0xFF; bytes[2] = (ip >> 16) & 0xFF; bytes[3] = (ip >> 24) & 0xFF; printf("%d.%d.%d.%d\n", bytes[3], bytes[2], bytes[1], bytes[0]); } |
728x90
반응형
'프로그래밍 > C, C++' 카테고리의 다른 글
padding (2) | 2018.10.17 |
---|---|
C++에서 띄어쓰기 포함 한 줄 그대로 받기 (0) | 2018.10.14 |
Visual Studio 64bit inline asm (0) | 2018.08.23 |
VirtualAllocEx Error 487 (0) | 2018.01.25 |
openssl socket C/C++ example (0) | 2017.10.31 |
유닉스 crypt 함수 (0) | 2017.05.29 |
printf 덮어 쓰기 (0) | 2016.11.09 |
연산자 오버라이딩, sort, 생성자 (2) | 2015.06.07 |
c++ 연산자 오버로딩 (0) | 2014.10.29 |
C++ mysql 연동 (0) | 2014.09.23 |
댓글