문자열이 IP인지 DNS 인지 구별 할수 있는 방법이 있나요?

skylandi의 이미지

실행파일에 대한 인자로 IP형태의 문자열이나 도메인 형태의 문자열이
왔을 때 그것을 구별할 수 있는지 구별 할수 있는 방법이 있나요?

예를 들면

1. [실행파일] 210.43.214.151
2. [실행파일] yahoo.co.kr
or
[실행파일]1004love.co.kr
이 생깁니다.

1번과 2번을 구별해서 서버에 접속 하는 프로그램을 하려고 합니다.

많은 답글 부탁 드립니다.

좋은 하루 되시길...

theone3의 이미지

제가 생각하는 것이 질문자의 의도가 맞길 바랍니다.

실행파일에 대한 인자로 IP형태의 문자열이나 도메인 형태의 문자열이
왔을 때 그것을 구별할 수 있는지에 대한 질문으로 이해하겠습니다.

프로그램에서 인자로 받은 내용의 아스키코드(ASCII)를 보면
그 값이 숫자를 나타내는지 영문자를 나타내는지 알수 있습니다.

당신은 사랑받기 위해 태어난 사람.

pynoos의 이미지

inet_aton, inet_addr 함수를 사용하고 결과를 확인하면 됩니다.

kangnaru의 이미지

정상적인 (오류가 없는) IP 또는 URL이 들어온다는 가정하에서는 마지막 글자만 보고 판별해도 되겠네요. 마지막 글자가 수자인 URL은 없죠? (제가 알기로는.. --;;;)

yeppiguy의 이미지

단순히 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 사이의 숫자까지 체크하시면 더 완벽해
지겠죠....ㅎㅎ
aero의 이미지

보통 소켓프로그래밍에서 우선 들어온값이 ip라고 가정하고
inet_addr 함수에 넣고 리턴값이 ip형태의 address가 아니라고
넘어오면 gethostbyname 함수를 사용하여 FQDN에 대한
ip를 얻어내서 다시 접속하는 방식으로 프로그래밍 하지요.

미리 그걸 ip냐 아니냐를 구별하기 위해 판별하는 루틴까지
짤 필요는 없다고 생각되네요

skylandi의 이미지

답변에 감사 드립니다.

내가 하고자 하는길....

댓글 달기

Filtered HTML

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

BBCode

  • 텍스트에 BBCode 태그를 사용할 수 있습니다. URL은 자동으로 링크 됩니다.
  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param>
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.

Textile

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • You can use Textile markup to format text.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Markdown

  • 다음 태그를 이용하여 소스 코드 구문 강조를 할 수 있습니다: <code>, <blockcode>, <apache>, <applescript>, <autoconf>, <awk>, <bash>, <c>, <cpp>, <css>, <diff>, <drupal5>, <drupal6>, <gdb>, <html>, <html5>, <java>, <javascript>, <ldif>, <lua>, <make>, <mysql>, <perl>, <perl6>, <php>, <pgsql>, <proftpd>, <python>, <reg>, <spec>, <ruby>. 지원하는 태그 형식: <foo>, [foo].
  • Quick Tips:
    • Two or more spaces at a line's end = Line break
    • Double returns = Paragraph
    • *Single asterisks* or _single underscores_ = Emphasis
    • **Double** or __double__ = Strong
    • This is [a link](http://the.link.example.com "The optional title text")
    For complete details on the Markdown syntax, see the Markdown documentation and Markdown Extra documentation for tables, footnotes, and more.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 사용할 수 있는 HTML 태그: <p><div><span><br><a><em><strong><del><ins><b><i><u><s><pre><code><cite><blockquote><ul><ol><li><dl><dt><dd><table><tr><td><th><thead><tbody><h1><h2><h3><h4><h5><h6><img><embed><object><param><hr>

Plain text

  • HTML 태그를 사용할 수 없습니다.
  • web 주소와/이메일 주소를 클릭할 수 있는 링크로 자동으로 바꿉니다.
  • 줄과 단락은 자동으로 분리됩니다.
댓글 첨부 파일
이 댓글에 이미지나 파일을 업로드 합니다.
파일 크기는 8 MB보다 작아야 합니다.
허용할 파일 형식: txt pdf doc xls gif jpg jpeg mp3 png rar zip.
CAPTCHA
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.