문자열이 IP인지 DNS 인지 구별 할수 있는 방법이 있나요?
글쓴이: skylandi / 작성시간: 월, 2003/11/03 - 5:22오전
실행파일에 대한 인자로 IP형태의 문자열이나 도메인 형태의 문자열이
왔을 때 그것을 구별할 수 있는지 구별 할수 있는 방법이 있나요?
예를 들면
1. [실행파일] 210.43.214.151
2. [실행파일] yahoo.co.kr
or
[실행파일]1004love.co.kr
이 생깁니다.
1번과 2번을 구별해서 서버에 접속 하는 프로그램을 하려고 합니다.
많은 답글 부탁 드립니다.
좋은 하루 되시길...
Forums:


답변입니다.
제가 생각하는 것이 질문자의 의도가 맞길 바랍니다.
실행파일에 대한 인자로 IP형태의 문자열이나 도메인 형태의 문자열이
왔을 때 그것을 구별할 수 있는지에 대한 질문으로 이해하겠습니다.
프로그램에서 인자로 받은 내용의 아스키코드(ASCII)를 보면
그 값이 숫자를 나타내는지 영문자를 나타내는지 알수 있습니다.
당신은 사랑받기 위해 태어난 사람.
inet_aton, inet_addr 함수를 사용하고 결과를 확인하면 됩
inet_aton, inet_addr 함수를 사용하고 결과를 확인하면 됩니다.
---
http://coolengineer.com
정상적인 (오류가 없는) IP 또는 URL이 들어온다는 가정하에서는 마지
정상적인 (오류가 없는) IP 또는 URL이 들어온다는 가정하에서는 마지막 글자만 보고 판별해도 되겠네요. 마지막 글자가 수자인 URL은 없죠? (제가 알기로는.. --;;;)
단순히 IP인지 DomainName 인지 구분만 하시고 싶으시면,
단순히 IP인지 DomainName 인지 구분만 하시고 싶으시면,
bool isIPaddr(const char *ipstr) { int len; if((len=strlen(ipstr)) <= 15 && strspn(ipstr,"0123456789.") == len) return true; else return false; }요렇게 하면 됩니다... 0~255 사이의 숫자까지 체크하시면 더 완벽해
지겠죠....ㅎㅎ
흠
보통 소켓프로그래밍에서 우선 들어온값이 ip라고 가정하고
inet_addr 함수에 넣고 리턴값이 ip형태의 address가 아니라고
넘어오면 gethostbyname 함수를 사용하여 FQDN에 대한
ip를 얻어내서 다시 접속하는 방식으로 프로그래밍 하지요.
미리 그걸 ip냐 아니냐를 구별하기 위해 판별하는 루틴까지
짤 필요는 없다고 생각되네요
답변에 감사 드립니다.
답변에 감사 드립니다.
내가 하고자 하는길....