все,
Я разрабатываю фреймворк для Android.
Теперь я пытаюсь скомпилировать бинарный файл в / vendor / bin, для этого файла нужна функция: установить статический бинарный файл ip.my isзапустить в корне, поэтому он не может вызвать команду ifconfig.
Я пробую этот код в своем коде, и эта часть уже пробовала на платформе Linux, она работает хорошо.но не может работать на Android.
кто-нибудь может мне помочь?
int setIPAddress( char *IPAddress ) {
struct ifreq ifr;
int so;
if ((so = socket(PF_PACKET, SOCK_RAW, 0)) < 0) {
return -1;
}
strcpy(ifr.ifr_name,"eth0");
bzero (&(ifr.ifr_addr), sizeof (struct sockaddr_in));
((struct sockaddr_in *) &ifr.ifr_addr)->sin_family = AF_INET;
((struct sockaddr_in *) &ifr.ifr_addr)->sin_addr.s_addr = inet_addr(IPAddress);
if(ioctl(so,SIOCSIFADDR,&ifr) < 0) {
close(so);
return -1;
}
if (ioctl(so, SIOCGIFFLAGS, &ifr) < 0) {
close(so);
return -1;
}
ifr.ifr_ifru.ifru_flags = ifr.ifr_ifru.ifru_flags | IFF_UP;
if (ioctl(so, SIOCSIFFLAGS, &ifr) < 0) {
close(so);
return -1;
}
close(so);
printf("setIPAddress %s OK!\n",IPAddress);
return 0;
}