0
我在android中編寫本機應用程序,我需要在我的應用程序中獲取設備的默認網關。這是我現在的代碼來獲取默認網關。檢索Android手機的默認網關
static int get_default_gateway(char *def_gateway, int buf_size)
{
FILE* pipe;
char buffer[128];
char result[2049];
char cmd[] = "netstat -r | grep ^default | awk '{print $2}'";
pipe = popen(cmd, "r");
if (!pipe) return 1;
memset(result, 0, sizeof(result));
while(!feof(pipe)) {
memset(buffer, 0, sizeof(buffer));
if(fgets(buffer, 128, pipe) != NULL)
{
strcat(result, buffer);
}
}
pclose(pipe);
memset(def_gateway, 0, buf_size);
strncpy (def_gateway, result, buf_size);
return 0;
}
它適用於我的LG p500,但在某些設備上它不會返回任何東西。
我的問題是:popen()是否適用於android?我在某處讀到它不包含在仿生物中。
是否有任何其他方法來獲取默認網關?我需要它用C編寫而不是java。
謝謝
謝謝我相信grep和awk是問題所在。 – kuchi
請注意,並非所有的Android設備都支持-r的netstat實現。 – bleater