자신 IP 얻어내기 (Linux 버전)
글쓴이: purewell / 작성시간: 금, 2004/11/05 - 3:38오후
윈도우즈 버전에 이은 리눅스 버전입니다.
//------------------------------------------------------------------------------
//
// Get machine ip addresses by sockaddr for sockaddr_in/sockaddr_in6.
//
// AUTHOR : Yubin Lim
// DATE : 2004-11-05
// EMAIL : purewell at purewell dot biz
// REQUIRE : Linux,
// GNU C/C++ Compiler
//
//------------------------------------------------------------------------------
# include <sys/types.h>
# include <sys/socket.h>
# include <sys/select.h>
# include <sys/ioctl.h>
# include <netdb.h>
# include <netinet/in.h>
# include <netinet/tcp.h>
# include <arpa/inet.h>
# include <pthread.h>
# include <unistd.h>
# include <sys/epoll.h>
# include <net/if.h>
# include <linux/sockios.h>
static bool linux_getMyIP(int nFamily)
{
int sock;
int nRet;
size_t nNIC;
const size_t nMaxNIC = 256;
struct ifconf ifc;
struct ifreq ifr[nMaxNIC];
struct sockaddr* pAddr(NULL);
struct sockaddr_in addr4;
struct sockaddr_in6 addr6;
sock = socket(nFamily, SOCK_STREAM, 0);
if ( sock == -1 ) return false;
ifc.ifc_len = sizeof(ifr);
ifc.ifc_ifcu.ifcu_req = ifr;
nRet = ioctl(sock, SIOCGIFCONF, &ifc);
if ( nRet == -1) return false;
close(sock);
nNIC = ifc.ifc_len / sizeof(struct ifreq);
addr_buf.nIPVersion = nFamily;
for ( size_t i = 0 ; i < nNIC; i ++ )
{
if ( nFamily == ifc.ifc_ifcu.ifcu_req[i].ifr_ifru.ifru_addr.sa_family )
{
// todo convert binary to string...
// if nFamily is AF_INET then pAddr is struct sockaddr_in*.
// else if nFamily is AF_INET6 then pAddr is struct sockaddr_in6*.
pAddr = (&ifc.ifc_ifcu.ifcu_req[i].ifr_ifru.ifru_addr);
}
}
return true;
}Forums:


유용한 정보 고맙습니다.
열심히 찾고 있었는데..
매우 매우 감사합니다~ :D
[url]http://bbs.kldp.org/viewtopic.php?t
http://bbs.kldp.org/viewtopic.php?t=28638&highlight=%BC%AD%C1%F6%C8%C6+++ip
이 글 참고하셔도 괜찮을듯 ^^
<어떠한 역경에도 굴하지 않는 '하양 지훈'>
#include <com.h> <C2H5OH.h> <woman.h>
do { if (com) hacking(); if (money) drinking(); if (women) loving(); } while (1);
전 이렇게....
전에 리눅스에서 ip주소 메일로 넘기는 팁하나 적은적있었는데...
대략 어떤분이 한줄짜리로...~~ 수정을... 찾아보니 이렇더군요..
DATE="ip_address `date`";export DATE; ifconfig | mail
hongkildong@empal.com -s "$DATE"
(당근 한줄로 적어줘야합니다. 공간이 좁아서 2줄이된것임..한줄한줄..)
이 부분이 /etc/rc.local에 적어주시면 부팅할때마다 메일로 보내준다는...
요즘은 쓸일이 없지만요... 누가 부팅하냐고 묻지마세요... 꼭 이거 적으면
"부팅은 누가 시키는데요..??" 묻는분이 꼭 있다는..... 그건 각자 알아서...
해결....전 부팅은 해결해드릴수없습니다...
Re: 전 이렇게....
부팅은 원격으로 가능하지 않나요? 전 그렇게 부팅하는데 -_-;
PC 끌때는 터미널에서 shutdown 명령으로하고요. -_-;;;
"빈손으로 사랑하려는 자에게 세상은 너무 가혹하다."
좋은 정보
좋은 정보 감사합니다~~!!!
--------------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
http://heuno
-----------------------------------------------------
남이 가르쳐주는 것만 받아들이는 것이 아니라, 스스로 만들고, 고쳐가는 사람을 '해커'라고 부른다.
그리고 자신이 쌓아온 노하우를 거리낌없이 나눌 줄 아는 사람을 '진정한' 해커라고 한다.
-Rob Flickenger 'Linux server hacks'
DEBIAN TESTING, KDE...
debpolaris.blogspot.kr
댓글 달기