2015年8月17日 星期一

[C] Determine network interface


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


int Get_OpenvpnInterface(char *ifname)
{
    int prefix = 0;
    char temp[140] = {0};
    FILE *fp = NULL;

    sprintf(temp, "ls /sys/class/net | grep %s", ifname);
    system(temp);

    sprintf(temp, "id=`ls /sys/class/net | grep %s`; if [ -n \"$id\" ]; then echo 1 > /var/tmp/.openvpn; else echo 0 > /var/tmp/.openvpn; fi ", ifname);
    system(temp);

    memset(temp, 0 , sizeof(temp));
    if ((fp = fopen("/var/tmp/.openvpn", "r")) != NULL)
    {
                fscanf(fp,"%d", &prefix);
                fclose(fp);
    }
    remove("/var/tmp/.openvpn");

    return prefix;
}

int main (void)
{
    int a;    
    a = Get_OpenvpnInterface("wlan0");
    printf("a = %d \n",a);
    return 0;
}

Result:
wlan0
a = 1

Reference :

0 意見:

張貼留言