임의의 갯수를 가진 컴퓨터에 핑을 보내야합니다.

cjy1126의 이미지

지금 학원 프로젝트로 NMS를하고 있습니다.

컴퓨터의 on/off를 확인하기위해서 특정범위의 ip에 핑을 쏴야합니다.

강사님께서 systemp("ping ..."); 이런식으로 말고 만들어서 하라고 하셔서 icmp를 이용해서 만들었습니다.

for문으로해서 보낼려니까 핑마다 보내는 목적지 ip가 다르기때문에 소켓을 그 갯수만큼 열게되더군요.

결국 생각해보니까 ip헤더를 만들어서 목적지 ip를 바꿔줘야할것 같습니다.

지금 그렇게 구현하고 있는데, 혹시 더 쉬운방법이 없을까요?

지금은 직접 ip헤더를 만들어서 썼지만, 더 쉬운 방법이 있다면 그 방법도 알고 넘어가고 싶습니다.

고수님들 답변 기다리면 즐거운 하루 되시길 바라겠습니다.

sunyzero의 이미지

브로드캐스트한뒤에 반향되는 패킷들을 잡아내시면 될듯...

========================================
* The truth will set you free.

cjy1126의 이미지

처음에 멀티캐스트를 생각했었는데, 강사님께서 멀티캐스트나 브로드캐스트 쓰지말고, system("ping..."); 도 쓰지말고 icmp 이용해서 만들어서 쓰라고 하시네요.

그냥 보내자니 소캣이 보내는 갯수만큼 만들어질것 같고, 답답하네요. ㅜ.ㅜ

cjh의 이미지

보내는 갯수만큼 소켓을 만드는 것에 어떤 문제가 있나요?

--
익스펙토 페트로눔

cjy1126의 이미지

여러사람이 작업을 나눠서 하는거라 소켓을 많이 여는건 별로 안좋아보여서요.

책보고 공부만해보다가 처음 프로젝트를하는 제 우려일뿐인지는 모르지만...

소켓도 리소스인데, 아껴야 할것 같아서요.

소켓을 일일이 열어서 보내고 select로 받으면 fd를 닫아주고, 일정시간 안오는곳도 fd를 닫아주는 방법이 좋을까요?

아니면 ip헤더를 직접 만들어서 ip->dst만 바꾸는 방법을 쓰는것이 좋을까요?

열심히하면 둘다 구현은 가능할거라 생각하는데, 어느 방법이 좋은지 알고싶습니다.

xyhan의 이미지

select를 이용하는게 좋습미다..
그리고 소켓은 fork로
늘리는게 아니면 리소스 거정 안하셔도
될꺼 같습미다..
님의 생각대로 하세요.. 일정 시간지나면..
소켓 닫고.. 새로 생성하고..
그리고 소켓은 정해진 숫자 이상은
안만들어지는거 아닌가요.. select를
이용하는것은 입,출력이 끝난 파일 기술자를
찾아내서 다시 이용하게 만드는.. 기술 같은거
같은데.. 질문이 약간 이상하게 꼬이셨네요..

============================================================

선한 인간이냐 악한 인간이냐는 그사람의 의지에 달렸다. -에픽테토스-
의지 노력 기다림은 성공의 주춧돌이다. -파스퇴르-

============================================================

댓글 달기

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
이것은 자동으로 스팸을 올리는 것을 막기 위해서 제공됩니다.