Article View: pl.comp.os.linux.programowanie
Article #385Re: znajdowanie lokalnych adresów IP
From: Cezary H. Noweta
Date: Wed, 22 Sep 1999 14:41
Date: Wed, 22 Sep 1999 14:41
62 lines
2625 bytes
2625 bytes
Witam,
"Arkadiusz Miśkiewicz" wrote:
> Piotr Kucharski <chopin@sgh.waw.pl> wrote:
> > Arkadiusz Miśkiewicz <misiek@pld.org.pl> wrote:
> >> Jak w C sprawdzić jakie adresy IP ma lokalna maszyna.
> [...]
> > man gethostbyname
> gethostbyname(char *name);
> akurat nie znam nazwy ... (używanie name zwróconego przez gethostname()
> odpada bo chcę znaleść wszystkie lokalne IP a nie tylko te umieszczone
> w DNSie...
> jakieś inne propozycje ?
------
#include <sys/types.h>
#include <sys/ioctl.h>
#include <linux/if.h>
#include <stdio.h>
#define MAX_INTERFACES 10
int main()
{
unsigned char buff[MAX_INTERFACES * sizeof(struct ifreq)], *ip;
struct ifconf conf;
int sockfd, i;
conf.ifc_len = sizeof(buff);
conf.ifc_buf = buff;
if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ||
ioctl(sockfd, SIOCGIFCONF, &conf) < 0 ) {
fprintf(stderr, "Error while intializing\n");
return(-1);
}
printf("Nof interfaces: %d\n", i = conf.ifc_len / sizeof(struct ifreq));
while ( i-- ) {
ip = conf.ifc_req->ifr_addr.sa_data + 2;
printf("Addres: %d:%d:%d:%d\n",
(int)ip[0],
(int)ip[1],
(int)ip[2],
(int)ip[3]);
conf.ifc_req++;
}
close(sockfd);
return(0);
}
------
Definicja struktur ifreq i ifconf znajduje sie w <linux/if.h>,
a struktury sockaddr w <linux/socket.h>
-- pozdrawiam
--
Cezary H. Noweta 90-237 LODZ, ul. J.Matejki 34/38 POLAND
(chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl) +48 42 6356013, 6356012
University of Lodz - Main Library fax 6781678
Technical Details
Message-ID:
<37E8EAA5.3306613E@irys.usun.drugiitrzeciczlon.uni.lodz.pl>Path:
mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!not-for-mailReferences:
<sorir7.pva.ln@linstar.ipv6.zsz2.starachowice.pl> <7rp6fv$2ql$2@absolut.sgh.waw.pl> <dr3as7.jb6.ln@linstar.ipv6.zsz2.starachowice.pl>Show Full Headers
Complete Article Headers
Path: mbox-mo1.pugleaf.net!news-archive.icm.edu.pl!pingwin.icm.edu.pl!mat.uni.torun.pl!news.man.torun.pl!not-for-mail From: "Cezary H. Noweta" <chn@irys.usun.drugiitrzeciczlon.uni.lodz.pl> Newsgroups: pl.comp.os.linux.programowanie Subject: Re: znajdowanie lokalnych adresów IP Date: Wed, 22 Sep 1999 16:41:41 +0200 Organization: Biblioteka Uniwesytecka w Lodzi Lines: 62 Message-ID: <37E8EAA5.3306613E@irys.usun.drugiitrzeciczlon.uni.lodz.pl> References: <sorir7.pva.ln@linstar.ipv6.zsz2.starachowice.pl> <7rp6fv$2ql$2@absolut.sgh.waw.pl> <dr3as7.jb6.ln@linstar.ipv6.zsz2.starachowice.pl> NNTP-Posting-Host: chncc.lib.uni.lodz.pl Mime-Version: 1.0 X-Trace: flis.man.torun.pl 938011344 20482 212.191.71.33 (22 Sep 1999 14:42:24 GMT) X-Complaints-To: abuse@man.torun.pl NNTP-Posting-Date: 22 Sep 1999 14:42:24 GMT X-Accept-Language: pl,en X-Mailer: Mozilla 4.61 [en] (Win95; I) Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit