제목대로 입니다. 현재 프로그램이 실행되고 있는 컴퓨터의 IP주소를 리턴하는 함수 같은게 있나요???
http://bbs.kldp.org/viewtopic.php?t=768
---http://coolengineer.com
/* * Description : Current localhost IP * Argument : addrtype - type of address (INET4 or INET6) * Return : the hostent structure or a NULL pointer */ char **my_addrs(int *addrtype) { struct hostent *hptr; struct utsname myname; if (uname(&myname) < 0) return NULL; if ((hptr = gethostbyname(myname.nodename)) == NULL) return NULL; *addrtype = hptr->h_addrtype; return (hptr->h_addr_list); }
이거 Stevens 아저씨 책에 있는거 좀 응용한건데... 참고하세요...
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h> do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
서지훈 님이 올리신 것 제 시스템에서는 안되네요. 항상 NULL을 리턴하는군요. 제가 뭘 잘못했는지는 모르지만.....
#include <stdio.h> #include <sys/socket.h> #include <netdb.h> #include <sys/utsname.h> char **my_addrs(int *addrtype); int main(int argc, char *argv[]) { char **addr; int type; addr=my_addrs(&type); printf("[%s]\n",*addr); return 0; } /* * Description : Current localhost IP * Argument : addrtype - type of address (INET4 or INET6) * Return : the hostent structure or a NULL pointer */ char **my_addrs(int *addrtype) { struct hostent *hptr; struct utsname myname; if (uname(&myname) < 0) return NULL; if ((hptr = gethostbyname(myname.nodename)) == NULL) return NULL; *addrtype = hptr->h_addrtype; return (hptr->h_addr_list); }
main()을 아래처럼 바꿔서 해보세요..
int main(void) { struct in_addr in; char **addr; int type; addr=my_addrs(&type); memcpy(&in.s_addr, *addr, sizeof (in.s_addr)); printf("%s\n", inet_ntoa(in)); return 0; }
그리고, inet_ntoa()를 위해서 netinet/in.h 과 arpa/inet.h 헤더를 include 하시구요..
-------------------------- Donghyun Jung
텍스트 포맷에 대한 자세한 정보
<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]
http://bbs.kldp.org/viewtopic.php?t=768
http://bbs.kldp.org/viewtopic.php?t=768
---
http://coolengineer.com
[code:1]/* * Description : Curren
이거 제가 예전에 사용하던건데...
이거 사용하심 될겁니다...
이거 Stevens 아저씨 책에 있는거 좀 응용한건데...
참고하세요...
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
서지훈 님이 올리신 것 제 시스템에서는 안되네요.항상 NULL을 리턴
서지훈 님이 올리신 것 제 시스템에서는 안되네요.
항상 NULL을 리턴하는군요.
제가 뭘 잘못했는지는 모르지만.....
main()을 아래처럼 바꿔서 해보세요..[code:1]int m
main()을 아래처럼 바꿔서 해보세요..
그리고, inet_ntoa()를 위해서 netinet/in.h 과 arpa/inet.h 헤더를 include 하시구요..
--------------------------
Donghyun Jung
댓글 달기