资源简介
c语言,包含获取指定网口ip地址,mac地址,网关,以及c语言实现修改ip,网关,子网掩码,以及设置socket套接字加入到多播组的方法;。
代码片段和文件信息
/******************************************************************************
*
*
*******************************************************************************
* File name: net.c
* Purpose:
* Author: Felix(HuangFei)
* Version: v01.00
* Compiler: arm-linux-gcc
* Created on: 2014-11-28
*******************************************************************************
* Note:
* Revision history:
* Created by HuangFei 2014-11-28
******************************************************************************/
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include
#include “net.h“
#define TRUE 1
#define FALSE 0
#define MAC_ADDRESS_LEN 6
#define PATH_PROCNET_ROUTE “/proc/net/route“
#define IFACE_NAME_LENGTH IF_NAMESIZE
/**********************************************************************
* Function: SetMacAddress
* Description: 设置mac地址
* Input: pInterface :网络接口名字 如:eth0,pMacAddress:mac地址首地址
* Return: 成功 1,失败 0
* Others:
**********************************************************************/
unsigned char SetMacAddress(char *pInterfacechar *pMacAddress)
{
struct ifreq ifr;
struct sockaddr *hwaddr;
unsigned char *hwptr;
int sockfd;
int i;
/* 判断接口输入是否正确 */
if((pInterface == NULL)||(pInterface[0]!=‘e‘)||(pInterface[1]!=‘t‘)||(pInterface[2]!=‘h‘))
{
printf(“input inteface error!\n“);
return FALSE;
}
if(pMacAddress == NULL)
{
printf(“input mac address error\n“);
return FALSE;
}
sockfd= socket(AF_INETSOCK_DGRAM0);
if (sockfd<0)
{
printf(“Can‘t creat socket \r\n“);
}
memset(&ifr 0 sizeof(ifr));
strncpy(ifr.ifr_name pInterface sizeof(ifr.ifr_name)-1);
/*读出socket的信息*/
if (0 > ioctl(sockfd SIOCGIFFLAGS &ifr))
{
printf(“close the ethx:unknown interface\r\n“);
}
ifr.ifr_flags &= ~IFF_UP;
/*将信息写到socket中,从而关闭eth0*/
if (0 > ioctl(sockfd SIOCSIFFLAGS &ifr))
{
printf(“Can‘t close the ethx \r\n“);
return FALSE;
}
/*---------------------------------------------------------------------*/
/* set the interface eth0‘s MAC address */
/*---------------------------------------------------------------------*/
memset(&ifr 0 sizeof(ifr));
strncpy(ifr.ifr_name pInterface sizeof(ifr.ifr_name)-1);
hwaddr=(struct sockaddr *)&ifr.ifr_hwaddr;
/*ARPHRD_ETHER=1,标识接收的ARP为以太网格式*/
hwaddr->sa_family = ARPHRD_ETHER;
hwptr=hwaddr->sa_data;
for(i=0;i<6;i++)
*hwptr++ = (unsigned char)pMacAddress[i];
if (0 > ioctl(sockfd SIOCSIFHWADDR &ifr))
{
printf(“Can‘t set the MA
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 26187 2015-04-27 20:40 net.c
文件 1895 2015-04-27 20:40 net.h
----------- --------- ---------- ----- ----
28082 2
- 上一篇:VC++制作的屏幕录像
- 下一篇:直方图平滑与双峰分布二值化
相关资源
- C语言课程设计大作业-学生管理系统含
- IP TCP UDP校验和计算
- ntripclient-c++
- C++课程设计报告-科学计算器加强版
- 五子棋AI代码 启发式搜索+算杀 内置禁
- MFC带百分比的进度条
- C++写的高效率排行榜功能 rank.zip
- 超简单的ntrip客户端C语言实现.docx
- SDNU 面向对象程序设计及C++ MFC 期中作
- MFC基于TCP/IP协议的聊天室源代码 (继
- 服务端Node.js和VC++程序间通过SOCKET通信
- C++ 趣步辅助工具 一键刷步.zip
- mstcpip头文件
- 获取自己的外网ip地址
- IP地址修改器源码
- mfc获取mac地址的小程序
- 电梯仿真.zip
- 校园导游系统().zip
-
avipla
yer一个播放器 - C语言模拟IP重组 源码
- linux环境C语言tcp聊天室
- ELGamal加解密(c语言实现).zip
- RSA加解密c语言实现.zip
- visualc++下位机温度测量串口通信与实
- 信息学奥赛NOIP系列课程之C++部分课程
-
C++中使用CWebPage调用ja
vasc ript - C++获取电脑MAC/CPU/BIOS/硬盘等硬件信息
- PBKDF2_HMac_SHA1哈希算法
- VC获取网卡IP信息
- microphone.zip
评论
共有 条评论