문자열로 된 ip주소를 +1 증가시키는 방법 문의드립니다. c언어
글쓴이: pwy1575 / 작성시간: 금, 2017/04/14 - 11:01오전
안녕하세요.
네트워크 관련 프로그래밍 중 문자열로 이루어진 IP주소를 받아
IP+1 을 시켜서 다시 문자열로 저장하는 방법에 관해 문의드립니다.
ex) 192.168.1.1 -> 192.168.1.2
아래 코드와 같이 작성하면 +1은 되는거 같은데 다시 문자열로 변환 하는 방법을 잘 모르겠습니다.
htonl(ntohl(inet_addr("192.168.1.1"))+1);감사합니다.
Forums:


long next = ntohl( inet_addr(
좋은 하루 되세요!
답변감사드립니다.
제가 생각한 것 보다 'struct in_addr' 을 사용하면 비교적 간단하게 사용가능하네요.
감사합니다.
자답입니다.
안녕하세요 위 질문에 대한 자답을 올립니다.
생각보다 빨리 해결되어 위 문제에 대한 해결 방안을 적겠습니다.
1. inet_addr("192.168.1.1") -> 해당 문자열을 network order uint32_t 형으로 변환합니다.
2. ntohl(inet_addr("192.168.1.1"))+1 -> 1번에서 변환한 uint32_t 형 데이터를 +1 해주기 위해 host order 로 변환합니다.
3. htonl(ntohl(inet_addr("192.168.1.1"))+1); -> host order로 변환한 데이터를 다시 network order로 변환 합니다.
4. inet_ntoa(*(struct in_addr *)&htonl(ntohl(inet_addr("192.168.1.1"))+1));
->network order로 변환된 uint32_t 타입의 데이터를 *(struct in_addr *)& 강제 형변환 시켜 inet_ntoa 함수를 이용해 문자열로 변환 합니다.
감사합니다.