■ 테스트 계정 생성 먼저 코디엔에스 홈 페이지의 서비스 신청으로 이동하여 아이디, 비밀번호, 시리얼번호, DDNS 도메인을 생성하십시오. 생성이 완료되셨으면, 홈페이지 ▷ DDNS 서비스 ▷ DDNS API 페이지에서 DDNS API
소스를 내려 받고 DDNS API 서비스를
시작하십시오.
▶ 테스트 계정 생성 ▷ DDNS API 다운로드 ▷ DDNS API 적용 / 테스트 순으로 진행,
API 적용 |
■ 라이브러리 소스 컴파일 /ddns_client_c_source 경로의 c 소스를 아래의 라이브러리명으로 컴파일 합니다. gcc -c Ddns_Client_Main.c Ddns_Client_File.c Ddns_Client_Socket.c
Ddns_Client_System.c ar r libddnsclient.a Ddns_Client_Main.o Ddns_Client_File.o
Ddns_Client_Socket.o Ddns_Client_System.o libddnsclient.a 위의 라이브러리를 장비 펌웨어와 연동을 위해 펌웨어 컴파일에 포함시켜주십시오. -lddnsclient -L./ |
■ 메인 함수 void ddns_main_interface(DDNS_PARAMETER *m_ddns_parameter,
RETURN_PARAMETER *m_return_para) DDNS_PARAMETER *m_ddns_parameter : 고객사 장치 --> DDNS 클라이언트 프로세스로 전달되는
값 RETURN_PARAMETER *m_return_para : DDNS 클라이언트 프로세스 --> 고객사 장치로 전달되는 값 |
■ 명령어 DDNS_PARAMETER *m_ddns_parameter 의 s_code 변수에 담아 전달 아이피 모니터링(2) |
■ 고객사 장치 - DDNS 클라이언트 프로세스로 전달되는 값 typedef struct _Ddns_Parameter // 고객사 장치 --> DDNS 클라이언트 프로세스로 전달되는 값 { char s_code[1]; // 메시지의 종류를 구분하는 코드 : 아이피 업데이트(2) char s_user_id[MAX_ID_LENGTH+1]; // 아이디 --> 24 char s_password[MAX_PASS_LENGTH+1]; // 암호 12 char s_serial[MAX_SERIAL_LENGTH+1]; // 시리얼 넘버 12 char s_domain[MAX_DOMAIN_LENGTH+1]; //도메인 : codns.com : 고정 값 char s_ethernet[10]; // 이더넷 인터페이스 char s_main_svr[30]; // 메인 서버 도메인 혹은 아이피 svr1.codns.com : 고정 값 char s_sub_svr[30]; // 보조 서버 도메인 혹은 아이피 svr2.codns.com : 고정 값 char s_cur_ip[16]; // 현재 아이피 char s_nat_check[1]; // 공유기 사용 여부 'Y', 'N' char s_log_check[1]; // 로그 기능 사용 여부 'Y', 'N' char s_log_path[100]; // 로그 파일 경로 및 파일명 "c:\\ddns\\ddns_ddns_log" } DDNS_PARAMETER;
이상의 정보가 담겨,
ddns_main_interface(DDNS_PARAMETER *m_ddns_parameter,
RETURN_PARAMETER *m_return_para) 으로 전달 |
■ DDNS 클라이언트 프로세스 - 고객사 장치로 전달되는 값 (반환 값) typedef struct _Return_Parameter // DDNS 클라이언트 프로세스 --> 고객사 장치로 전달되는
값 { int r_code; // 반환 코드 char r_nat_check[1]; // 공유기 사용 여부 char r_cur_ip[16]; // 현재 아이피 } RETURN_PARAMETER; 위 반환 값 중 r_nat_check 값과 r_cur_ip 값을 파일 혹은 메모리에 저장함. 아이피 모니터링(6)의 경우 저장된 위의 r_nat_check 값과 r_cur_ip 값을 struct _Ddns_Parameter
의 s_cur_ip 와 s_nat_check 에 담아 보냄. |
■ 에러 코드 r_code #define EMPTY_DOMAIN 101 // 파라미터 에러 : 도메인 값이 없음 #define EMPTY_ETHERTNET 102 // 파라미터 에러 : 이더넷 인터페이스 값이 없음 #define EMPTY_MAIN_IP 103 // 파라미터 에러 : 메인 서버 아이피 없음 #define EMPTY_SUB_IP 104 // 파라미터 에러 : 보조 서버 아이피 없음 #define C_CODE_PARA_ERROR 105 // 파라미터 에러 : 명령어 코드 없음 #define EMPTY_IP 106 // 파라미터 에러 : 아이피 정보 없음 #define EMPTY_LOG_PATH 107 // 파라미터 에러 : 로그 기록 파일 정보 없음 #define EMPTY_HOST 108 // 파라미터 에러 : 호스트 값이 없음 #define HOST_LENGTH_SHORT 115 // host 도메인 규칙 : host 길이 오류 2자 이상이어야
함. #define HOST_LENGTH_LONG 116 // host 도메인 규칙 : host 도메인 길이 오류 30자
이내여야 함. #define HOST_LETTER_ERROR 117 // host 도메인 규칙 : 영문과 숫자로 이루어져야 함. #define HOST_HYPHEN_ERROR 118 // host 도메인 규칙 : '-'이 도메인 앞이나 뒤에 위치 #define NETWORK_FAIL 121 // 네트웍 장애, 인터넷 안됨 #define CHECK_SERVER_IP_FAIL 122 // 서버 아아피 확인 실패 #define IOCTRL_ERROR 131 // ioctl 함수 에러 : 랜카드 정보 추출 에러 #define ETHERNET_ERROR 132 // 일치하는 이더넷 인터페이스 없음 : 랜 카드 정보 추출 에러 #define CREATE_SOCKET_ERROR 141 // 소캣 생성 에러 #define BIND_SOCKET_ERROR 142 // 소캣 bind 에러 #define MAIN_SVR_CONNECT_ERROR 143 // 메인 서버 접속 에러 #define SUB_SVR_CONNECT_ERROR 144 // 보조 서버 접속 에러 #define DATA_SEND_ERROR 145 // 서버에 전문 전송 실패 #define CODE_ERROR 151 // 코드 오류, 명령어 코드 값 이상, 지정된 코드 값이 아님 #define PACKET_ERROR 152 // 패킷 구성 오류 #define ERROR_USER_ID 153 // 없는 아이디 #define ERROR_PASSWORD 154 // 암호 에러 #define ERROR_SERIAL 155 // 시리얼 에러 #define DB_ERROR 161 // DB 처리 과정 에러 #define SERVER_ERROR 162 // 서버 처리 과정 에러 #define WRONG_PACKET 163 // 전문 수신 에러 : 알 수 없는 전문 수신 #define IP_CHANGED 171 // 아이피 변경됨 --> 아이피 업데이트 필요 #define DISCONNECTED_FROM_SERVER 181 // 서버로부터 소캣 연결이 끊어짐 #define SELECT_FUNC_ERROR 182 // DDNS 클라이언트 프로세스 에러 : select 함수 에러 #define RECIEVE_TIMEOUT 183 // 서버 응답 대기 시간 초과 : 10초 동안 서버로부터 응답이 없음,
과정 재시도 |
■ 명령어 코드 s_code 아이피 모니터링 과정 유의하시기 바랍니다. ㄱ. 아이피 모니터링(2) 반환 값 0 : 아이피 변화 없음, 아이피 업데이트 완료 |
■ 로그 기능 로그 기능을 사용할 경우, struct _Ddns_Parameter 의 s_log_check 값을 'Y'로 마크 함. 그리고 로그 파일의 파일명 포함한 전체 경로를 struct _Ddns_Parameter 의 s_log_path
에 담아 DDNS 함수를 호출합니다. ▶ 예) strcpy(m_ddns_para.s_log_path, "d:\\ddns_log"); |
■ 시나리오 아이피 모니터링(2) - 아이피 변경 여부 확인과 아이피 변경 시 아이피 업데이트 할 때.
①. s_code = '2' 로 데이터를 담아 ddns_main_interface() 호출 ②. ddns_main_interface()의 m_return_para의 반환 값으로 r_code = '0' 일 경우,
정상적으로 아이피 변경 처리 됨. ③. 정수 0 이 아닌 에러 코드가 반환되면 해당 에러코드의 내용을 점검 함. ④. 고객사 측 프로세스에서 원하는 주기(1분 혹은 10초 등등)로 아이피 모니터링(6) 명령으로 DDNS 프로세스를 콜
해주기 바랍니다. |
■ 기술지원 만약 본 API 외에 좀더 적용이 용이한 방식의 API가 필요하시거나, DDNS API
에 대해 기술지원 또는 기술 상담이 필요하시면 위의 " 1:1 친절상담"에 고객님이 편한 시간과 연락처, 그리고
주요 이슈사항들을
작성해주시면 담당자가 직접
전화 방문하여 기술지원 및 상담을 해드리겠습니다.
|
코디엔에스 기술팀 - 2017-01-30일 등록