Thread View: pl.comp.os.linux.programowanie
5 messages
5 total messages
Started by Arkadiusz Miśkiewicz
Mon, 13 Sep 1999 12:47
znajdowanie lokalnych adresów IP
Author: Arkadiusz Miśkiewicz
Date: Mon, 13 Sep 1999 12:47
Date: Mon, 13 Sep 1999 12:47
9 lines
1182 bytes
1182 bytes
Jak w C sprawdzić jakie adresy IP ma lokalna maszyna. Wiem, że którymś ioctl()em lub poprzez netlink. Przykładowy kod (z komentarzami) mile widziany 8) -- Arkadiusz Miśkiewicz http://www.misiek.eu.org/ PLD/Linux [IPv6 enabled] http://www.pld.org.pl/
Re: znajdowanie lokalnych adresów IP
Author: Piotr Kucharski
Date: Wed, 15 Sep 1999 22:27
Date: Wed, 15 Sep 1999 22:27
8 lines
936 bytes
936 bytes
Arkadiusz Miśkiewicz <misiek@pld.org.pl> wrote: > Jak w C sprawdzić jakie adresy IP ma lokalna maszyna. man gethostname man gethostbyname man gethostbyaddr p.
Re: znajdowanie lokalnych adresów IP
Author: Arkadiusz Miśkiewicz
Date: Wed, 22 Sep 1999 08:26
Date: Wed, 22 Sep 1999 08:26
19 lines
1523 bytes
1523 bytes
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 gethostname pytam się o IP a nie o nazwe hosta > 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... > p. jakieś inne propozycje ? -- Arkadiusz Miśkiewicz http://www.misiek.eu.org/ PLD/Linux [IPv6 enabled] http://www.pld.org.pl/
Re: znajdowanie lokalnych adresów IP
Author: 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
Re: znajdowanie lokalnych adresów IP
Author: Jacek Danecki
Date: Thu, 23 Sep 1999 07:42
Date: Thu, 23 Sep 1999 07:42
9 lines
1316 bytes
1316 bytes
>>> Jak w C sprawdzić jakie adresy IP ma lokalna maszyna. A nie możesz zobaczyć, jak to jest robione w ifconfig? -- Jacek Danecki mail: biv@micronet.com.pl www: http://www.micronet.com.pl/~biv Registered Linux user number 137044
Thread Navigation
This is a paginated view of messages in the thread with full content displayed inline.
Messages are displayed in chronological order, with the original post highlighted in green.
Use pagination controls to navigate through all messages in large threads.
Back to All Threads