资源简介
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++制作的屏幕录像
- 下一篇:直方图平滑与双峰分布二值化
相关资源
- Quectel_EC200xEG912YEC600NEC600S系列_TCP(I
- stm32 +w5500 裸机 远程升级 自动dns pi
- TCP/IP客户端和服务器端源代码,好用
- modbus tcp/ip 简单通讯
- TCP/IP与串口调试
- diy写字机grbl v1.1源代码
- 蓝桥杯题库包括vip历届真题
- XUnZip Zip解压缩.rar
- C++ Primer by Stanley B. Lippman Josée La
- 微机接口----HQFC集成开发环境.zip
- 仿射密码-Affine cipher
- 基于51单片机射频RFID卡考勤上课上班
- 五子棋C++(Qt版).zip
- dsp课程设计——语音加密.zip
- AES-128-CBC算法C语言源码已经修改,可
- [BUPT]面向对象程序设计C++ - 平时作业
- Bmp图像处理.zip
- C++实现的蓝牙应用程序框架-BlueSolei
- 扫雷辅助程序.zip
- NOIP2018普及组C++试题答案
- C++ Primer中文第五版.zip
- C++实现监控IP数据包
- C++ 通过FFmpeg将rtsp视频流到本地mp4文件
- NOIP2006-2017普及组初赛c++版试题+答案
- hill密码的加密、解密以及破译.zip
- libcurl-7.19.3-win32-ssl-msvc.zip
- 设计并实现TINYC语言的扫描程序TINYC
- 汉字转拼音 自适应多音字处理 姓名自
- Microsoft Visual C++ 14.0.zip
-
Unreal Engine 4 sc
ripting with C++ Cookbook
评论
共有 条评论