亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? ipset.c

?? 此程序實現在Linux下對ARM板子進行IP設置。可以調用此程序改變IP地址
?? C
字號:
#include <sys/time.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <net/if.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <arpa/inet.h>
#include <net/if_arp.h> 
#include <asm/types.h>
#include <netinet/ether.h>
#include <linux/netlink.h>
#include <linux/rtnetlink.h>
#include <stdlib.h>
static char ipdz[16]="202.119.18.119";
static char zwym[16]="255.255.255.0";
static char mrwg[16]="202.119.18.3";
static char serverip[16]={0};

#define BUFSIZE 8192
#define PORTNUM 8001
struct route_info
{
	u_int dstAddr;
	u_int srcAddr;
	u_int gateWay;
	char ifName[IF_NAMESIZE];
};
int readNlSock(int sockFd, char *bufPtr, int seqNum, int pId)
{
	struct nlmsghdr *nlHdr;
	int readLen = 0, msgLen = 0;
	do{
		//收到內核的應答
		if((readLen = recv(sockFd, bufPtr, BUFSIZE - msgLen, 0)) < 0)
		{
			perror("SOCK READ: ");
			return -1;
		}

		nlHdr = (struct nlmsghdr *)bufPtr;
		//檢查header是否有效
		if((NLMSG_OK(nlHdr, readLen) == 0) || (nlHdr->nlmsg_type == NLMSG_ERROR))
		{
			perror("Error in recieved packet");
			return -1;
		}

		/* Check if the its the last message */
		if(nlHdr->nlmsg_type == NLMSG_DONE) 
		{
			break;
		}
		else
		{
			/* Else move the pointer to buffer appropriately */
			bufPtr += readLen;
			msgLen += readLen;
		}

		/* Check if its a multi part message */
		if((nlHdr->nlmsg_flags & NLM_F_MULTI) == 0) 
		{
			/* return if its not */
			break;
		}
	} while((nlHdr->nlmsg_seq != seqNum) || (nlHdr->nlmsg_pid != pId));
	return msgLen;
}

//分析返回的路由信息
void parseRoutes(struct nlmsghdr *nlHdr, struct route_info *rtInfo,char *gateway)
{
	struct rtmsg *rtMsg;
	struct rtattr *rtAttr;
	int rtLen;
	char *tempBuf = NULL;
	//2007-12-10
	struct in_addr dst;
	struct in_addr gate;

	tempBuf = (char *)malloc(100);
	rtMsg = (struct rtmsg *)NLMSG_DATA(nlHdr);
	// If the route is not for AF_INET or does not belong to main routing table
	//then return. 
	if((rtMsg->rtm_family != AF_INET) || (rtMsg->rtm_table != RT_TABLE_MAIN))
		return;
	/* get the rtattr field */
	rtAttr = (struct rtattr *)RTM_RTA(rtMsg);
	rtLen = RTM_PAYLOAD(nlHdr);
	for(;RTA_OK(rtAttr,rtLen);rtAttr = RTA_NEXT(rtAttr,rtLen)){
		switch(rtAttr->rta_type) {
	case RTA_OIF:
		if_indextoname(*(int *)RTA_DATA(rtAttr), rtInfo->ifName);
		break;
	case RTA_GATEWAY:
		rtInfo->gateWay = *(u_int *)RTA_DATA(rtAttr);
		break;
	case RTA_PREFSRC:
		rtInfo->srcAddr = *(u_int *)RTA_DATA(rtAttr);
		break;
	case RTA_DST:
		rtInfo->dstAddr = *(u_int *)RTA_DATA(rtAttr);
		break;
		}
	}
	dst.s_addr = rtInfo->dstAddr;
	if (strstr((char *)inet_ntoa(dst), "0.0.0.0"))
	{
		gate.s_addr = rtInfo->gateWay;
		sprintf(gateway, (char *)inet_ntoa(gate));
	}
	free(tempBuf);
	return;
}


/********************************************************************
* 函數名: get_gateway
* 參數名: gateway(out)   網關
* 返回值: 0              成功
*          -1             失敗
* 功  能:獲取本地機的網關
********************************************************************/
int get_gateway(char *gateway)
{
	struct nlmsghdr *nlMsg;
	struct rtmsg *rtMsg;
	struct route_info *rtInfo;
	char msgBuf[BUFSIZE];

	int sock, len, msgSeq = 0;
	//創建 Socket 
	if((sock = socket(PF_NETLINK, SOCK_DGRAM, NETLINK_ROUTE)) < 0)
	{
		perror("Socket Creation: ");
		return -1;
	}

	/* Initialize the buffer */
	memset(msgBuf, 0, BUFSIZE);

	/* point the header and the msg structure pointers into the buffer */
	nlMsg = (struct nlmsghdr *)msgBuf;
	rtMsg = (struct rtmsg *)NLMSG_DATA(nlMsg);

	/* Fill in the nlmsg header*/
	nlMsg->nlmsg_len = NLMSG_LENGTH(sizeof(struct rtmsg)); // Length of message.
	nlMsg->nlmsg_type = RTM_GETROUTE; // Get the routes from kernel routing table .

	nlMsg->nlmsg_flags = NLM_F_DUMP | NLM_F_REQUEST; // The message is a request for dump.
	nlMsg->nlmsg_seq = msgSeq++; // Sequence of the message packet.
	nlMsg->nlmsg_pid = getpid(); // PID of process sending the request.

	/* Send the request */
	if(send(sock, nlMsg, nlMsg->nlmsg_len, 0) < 0){
		printf("Write To Socket Failed...\n");
		return -1;
	}

	/* Read the response */
	if((len = readNlSock(sock, msgBuf, msgSeq, getpid())) < 0) {
		printf("Read From Socket Failed...\n");
		return -1;
	}
	/* Parse and print the response */
	rtInfo = (struct route_info *)malloc(sizeof(struct route_info));
	for(;NLMSG_OK(nlMsg,len);nlMsg = NLMSG_NEXT(nlMsg,len)){
		memset(rtInfo, 0, sizeof(struct route_info));
		parseRoutes(nlMsg, rtInfo,gateway);
	}
	free(rtInfo);
	close(sock);
	return 0;
}

int netcheckagain(char *tem_ipdz,char *tem_zwym,char *tem_mrwg)
{
	struct sockaddr_in *my_ip;
	struct sockaddr_in *addr;
	struct sockaddr_in myip;
	my_ip = &myip;
	struct ifreq ifr;
	int sock;

	if((sock = socket(AF_INET, SOCK_DGRAM, 0)) < 0)
	{
		printf("sock error \n");
		return -1;
	}
	strcpy(ifr.ifr_name, "eth0");

	//取本機IP地址
	if(ioctl(sock, SIOCGIFADDR, &ifr) < 0)
	{
		printf("ioctl SIOCGIFADDR \n");
		return -1;
	}
	my_ip->sin_addr = ((struct sockaddr_in *)(&ifr.ifr_addr))->sin_addr;
	strcpy(tem_ipdz,inet_ntoa(my_ip->sin_addr));
	//printf("\n%s\n",tem_ipdz);
	
	//取本機掩碼
	if( ioctl( sock, SIOCGIFNETMASK, &ifr) == -1 )
	{
		perror("[-] ioctl");
		return -1;
	}
	addr = (struct sockaddr_in *) & (ifr.ifr_addr);
	strcpy(tem_zwym,inet_ntoa(addr->sin_addr));
	get_gateway(tem_mrwg);
	
	close(sock);
	return 0;
}

int net_check(void)
{
	char buff[100] = {0};
	char tem_ipdz[16]={0};
	char tem_zwym[16]={0};
	char tem_mrwg[16]={0};
	int i;
	ioctl(fd, IOCTLCLEARSCREEN);

	sprintf(buff,"ifconfig eth0 %s netmask %s",ipdz,zwym);
	if(system(buff) != 0)
		printf("system(1) error");

	if(system("ifconfig eth0 down")!=0)
		printf("system(2) error");

	if(system("ifconfig eth0 up")!=0)
		printf("system(3) error");

	sprintf(buff,"route add default gw %s",mrwg);
	if(system(buff)!=0)
		printf("system(4) error");

	netcheckagain(tem_ipdz,tem_zwym,tem_mrwg);

	if((strcmp(ipdz,tem_ipdz)==0) && (strcmp(zwym,tem_zwym)==0) && (strcmp(mrwg,tem_mrwg)==0))
	{

		printf("檢測到網絡,配置成功!");	
		for(i=0;i<5000000;i++); 
		return 0;
	}
	else
	{
		printf("請檢查網絡物理連接和網絡設置,配置成功!");	
		for(i=0;i<5000000;i++); 
		return 1;
	}
}
int main()
{
 net_check();
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区四区在线| 不卡av电影在线播放| 最好看的中文字幕久久| 亚洲精品一区二区三区影院| 欧美日韩中文另类| 91麻豆蜜桃一区二区三区| 国产成人在线视频网站| 国产一区二区三区久久悠悠色av| 午夜一区二区三区视频| 亚洲国产精品综合小说图片区| 亚洲美女一区二区三区| 一区二区久久久久| 午夜伦欧美伦电影理论片| 洋洋成人永久网站入口| 亚洲高清在线精品| 日韩电影在线观看电影| 日本强好片久久久久久aaa| 日韩国产欧美在线播放| 久久99精品一区二区三区三区| 激情成人综合网| 成人国产亚洲欧美成人综合网| 国产大陆精品国产| 91免费版在线| 欧美色综合久久| 日韩一区二区三区在线观看| 久久精品视频在线看| 亚洲色欲色欲www在线观看| 亚洲综合免费观看高清在线观看| 亚洲欧美国产77777| 五月综合激情网| 国产美女精品在线| 色乱码一区二区三区88| 777色狠狠一区二区三区| 久久九九国产精品| 夜夜精品视频一区二区| 男女男精品视频| 波多野结衣中文一区| 在线成人小视频| 日本一区二区三区四区| 亚洲精品国产一区二区精华液| 日韩精品亚洲一区| 粉嫩高潮美女一区二区三区| 欧美日韩另类国产亚洲欧美一级| 久久嫩草精品久久久精品| 一区二区三区四区精品在线视频| 免费在线一区观看| 91国偷自产一区二区开放时间 | 欧美激情在线免费观看| 亚洲欧美二区三区| 国产剧情一区二区| 欧美丰满美乳xxx高潮www| 中文欧美字幕免费| 精品一区二区三区免费视频| 91行情网站电视在线观看高清版| www激情久久| 日韩国产欧美三级| 欧美日韩免费电影| 亚洲欧美一区二区三区极速播放 | 国产精品一区二区三区99| 欧美日韩一区二区三区高清 | 中文字幕在线不卡| 免费美女久久99| 欧美日韩一区二区在线观看视频| 日本一区二区成人在线| 久久福利视频一区二区| 欧亚一区二区三区| 亚洲欧美日本在线| av成人免费在线| 日本一二三不卡| 狠狠色狠狠色综合| 久久青草国产手机看片福利盒子 | 久久精品一区四区| 麻豆成人久久精品二区三区红| 在线看不卡av| 一区二区三区四区av| 色综合亚洲欧洲| 亚洲四区在线观看| 色婷婷香蕉在线一区二区| 亚洲人成精品久久久久久| 99综合影院在线| 亚洲日本一区二区| 91国模大尺度私拍在线视频| 一区二区三区日韩欧美精品| 色综合夜色一区| 亚洲国产另类av| 欧美精品三级在线观看| 亚洲成人免费电影| 欧美一区二区精品| 黑人巨大精品欧美黑白配亚洲| 久久午夜老司机| caoporen国产精品视频| 亚洲乱码国产乱码精品精可以看| 91视频www| 国产一区二区免费视频| 久久久久久久精| 99精品欧美一区二区三区小说| 亚洲美女精品一区| 欧美人xxxx| 国产成人在线视频免费播放| 亚洲欧美日韩国产手机在线| 欧美精品777| 国产高清不卡二三区| 亚洲欧美视频在线观看| 秋霞午夜鲁丝一区二区老狼| 91福利精品视频| 久久不见久久见免费视频7 | 国产精品一品二品| 国产乱码一区二区三区| 色综合久久66| 蜜桃视频一区二区三区在线观看| 久久精品一区二区三区不卡| 97久久超碰国产精品| 日本欧美大码aⅴ在线播放| 欧美激情自拍偷拍| 9191精品国产综合久久久久久 | 国产色婷婷亚洲99精品小说| jizzjizzjizz欧美| 三级精品在线观看| 亚洲欧洲日韩一区二区三区| 亚洲综合在线免费观看| 久久精品一二三| 欧美高清一级片在线| 成人av资源站| 精品久久国产老人久久综合| 日本韩国欧美一区| 国产精品99久久久久久久vr| 亚洲成a人片在线观看中文| 夜色激情一区二区| 91丝袜美女网| 国产一区二区三区在线观看免费 | 在线成人免费视频| 97久久精品人人做人人爽50路| 美女精品自拍一二三四| 伊人夜夜躁av伊人久久| 欧美国产乱子伦| 久久久99久久精品欧美| 日韩欧美国产综合一区| 欧美三级三级三级爽爽爽| 99精品热视频| 懂色av一区二区三区免费观看| 奇米精品一区二区三区在线观看| 一区二区三区高清不卡| 国产精品久久久久一区二区三区共 | 久久先锋影音av鲁色资源| 51精品久久久久久久蜜臀| 在线看国产一区| 色女孩综合影院| 色婷婷久久一区二区三区麻豆| eeuss鲁一区二区三区| 成人av在线资源| 国产91丝袜在线播放| 粉嫩av一区二区三区粉嫩| 国产一区二区三区精品视频 | 久久精品夜色噜噜亚洲aⅴ| 欧美成人女星排行榜| 日韩美女一区二区三区四区| 制服.丝袜.亚洲.中文.综合| 制服丝袜日韩国产| 日韩丝袜情趣美女图片| 日韩欧美色电影| 久久久蜜臀国产一区二区| 国产午夜精品福利| 国产精品女同互慰在线看| 日韩一区在线播放| 一区二区高清免费观看影视大全| 一区二区三区在线免费| 亚洲国产一区在线观看| 婷婷综合另类小说色区| 日本不卡在线视频| 国产一区二区三区四区五区美女| 国产高清不卡二三区| 99精品国产99久久久久久白柏 | 午夜电影网亚洲视频| 日本不卡中文字幕| 国产成人亚洲综合a∨婷婷图片| 成人午夜精品在线| 在线免费av一区| 精品国产乱码久久久久久浪潮| 国产欧美日韩在线| 一区二区视频在线看| 免费看日韩a级影片| 国产精品夜夜嗨| 欧洲视频一区二区| 日韩午夜激情视频| 国产精品久久久久久久久果冻传媒| 亚洲色图丝袜美腿| 日韩电影免费在线| 国产一区二区不卡老阿姨| 99久久99久久久精品齐齐| 欧美精品久久久久久久久老牛影院| 欧美精品一区二区三区蜜臀| 国产精品电影院| 丝袜诱惑亚洲看片| 成人黄色大片在线观看| 91精品中文字幕一区二区三区| 国产女人aaa级久久久级| 午夜精品久久久久久久久久久| 国产一二精品视频| 欧美日韩国产a| 亚洲综合另类小说|