2017-01-30 6 views
0

Wie der Titel sagt. Ich möchte eine Liste aller IPs erhalten, die mit meinem PC verbunden sind. Nicht der Router und nicht die PCs im Netzwerk. Nur die IPs, mit denen ich verbunden bin. Ich weiß, es gibt einen Weg in C#, aber wie machst du es in C.
Ich mache das auf einem Linux.C - wie alle IPs mit meinem PC verbunden werden

+0

Sprechen wir Linux oder Windows OS? –

+0

@OferArial Ich spreche über Linux - lassen Sie mich hinzufügen, dass mit einer Bearbeitung – NathanProgrammer

+0

Ich habe versucht, eine Lösung für Linux unten geben. –

Antwort

0

This comment Links zu einem Programm, das analysiert liest aus:

/proc/net/tcp 
/proc/net/udp 
/proc/net/raw 
0

Sie sind für Ihre IP-Adressen zu fragen. Um eine Liste der IP-Adressen pro Schnittstelle zu erhalten, können Sie die integrierte Linux-Funktionalität ifconfig verwenden, die die Daten ausgibt und dann parsen kann.

Kredit dieser answer und basierend darauf, können Sie den folgenden Code verwenden, um jede Adresse in einer neuen Zeile zu drucken:

Bevor Sie führen dies, locate ifconfig verwenden und den Pfad in der Zeichenfolge entsprechend eingestellt .

Beachten Sie meinen Kommentar: Überprüfen Sie zuerst, ob dieser Befehl den gewünschten Ausgang für Sie über das Terminal ausgibt!

#include <stdio.h> 
#include <stdlib.h> 


int main(int argc, char *argv[]) 
{ 

    FILE *fp; 
    char ip[15]; 

    /* Open the command for reading. */ 
    fp = popen("ifconfig | grep \"inet addr\" | cut -d\":\" -f2 | cut -d\" \" -f1", "r"); 

    /*First check that this command outputs the wanted output for you*/ 
    if (fp == NULL) { 
    printf("Failed to run command\n"); 
    exit(1); 
    } 

    /* Read the output a line at a time - output it. */ 
    while (fgets(ip, sizeof(ip)-1, fp) != NULL) { 
    printf("%s", ip); 
    } 

    /* close */ 
    pclose(fp); 

    return 0; 
} 
Verwandte Themen