
一般地可以通过正则表达式库进行检测
也可以手动进行检测
常见的ip地址是点分十进制的字符串形式
类似
192.168.1.1
10.2.4.1
这种
四个部分每个部分的最大值是255
所以正则表达式简单点可以是
(\d+\.){3}\d+
但这样并不能完全正确地匹配ip地址
如果所要匹配的文件中确定出现的类似字符串为ip地址的话就完全没有问题
准确点可以
(\d{1,3}\.){3}\d{1,3}
然后再对每个数字进行判断
判断是否超出了ip地址的范围
下面是一个简单的使用正则表达式的代码
#include <stdio.h>#include <string.h>
#include <pcre.h>
int main(int argc,char **argv)
{
char *s="192.168.1.1"
pcre *code
int rc
int ovector[2*3]
const char *errptr
const char *ip
int erroffet
char *p
char buf[20]
code=pcre_compile("(\\d{1,3}\\.){3}\\d{1,3}",0,
&errptr,&erroffet,NULL)
if((rc=pcre_exec(code,NULL,s,strlen(s),0,0,ovector,2*3)) > 0)
{
pcre_get_substring(s,ovector,rc,0,&ip)
snprintf(buf,20,"%s",ip)
pcre_free_substring(ip)
for(p=strtok(buf,".")p != NULLp=strtok(NULL,"."))
{
if(atoi(p) > 255)
goto end
}
printf("正确ip!\n")
return 0
}
end:
printf("错误的ip!\n")
pcre_free(code)
return 0
}
网络配置参数主机名:用于在网络上标识一台计算机
IP地址与子网掩码:
IP地址一定是设置在主机网卡上的,网卡的IP地址等同于主机的IP地址
IP地址才哟个点分十进制的表示法:x.x.x.xx的取值范围是0~255。传统上IP地址分为A、B、C、D、E五类,其中A、B、C三类常用
子网掩码用来指明一个IP地址所标示的主机是处于哪个子网中的。子网掩码不能单独存在,它必须结合IP地址一起使用。子网掩码只有一个作用,就是将某个IP地址划分成网络地址和主机地址两部分
子网掩码是一个32位地址,对于A类地址来说,默认的子网掩码是255.0.0.0;对于B类地址来说默认的子网掩码是255.255.0.0;对于C类地址来说默认的子网掩码是255.255.255.0
IP地址的类别判定:
从一个IP地址直接判断它属于哪类地址的方法是,判断它的第一个十进制整数所在范围
A类:1.0.0.0 ~126.255.255.255
B类:128.0.0.0~191.255.255.255
C类:192.0.0.0~223.255.255.255
在所有IP地址中,以"127"开头的IP地址不可用于指定主机IP地址。它被称为回送地址,供计算机的各个网络进程之间进行通讯使用
网关地址:
设置主机的IP地址与子网掩码后,主机就可以使用IP地址与同一网段的其他主机进行通信了,但是不能与不同网段的主机进行通信
即使两台主机连接在同一台交换机(集线器)上, TCP/IP协议也会根据子网掩码判断主机处在不同的网络
为了实现不同网段主机之间的通讯,必须设置网关地址
DNS域名服务器地址:
通常人们使用容易记忆的域名来代替难以记忆的IP地址
为了能够使用域名,需要为计算机指定至少一个DNS域名服务器。由这个DNS域名服务器来完成域名解析的工作
域名解析包括两方面:正向解析(从域名到IP地址的映射),反向解析(从IP地址到域名的映射)
Internet 中存在着大量的DNS域名服务器,每台DNS域名服务器都保存着其管辖区域中主机域名与IP地址的对照表
网络的相关概念
Linux的网络接口
lo接口
lo接口表示本地回送接口,用于网络测试以及本地主机各网络进程之间的通信
无论什么应用程序,只要使用回送地址(127...*)发送数据都不进行任何正是的网络数据传输
eth接口
eth表示网卡设备接口,并附加数字来反映物理网卡的序号。如第一块网卡称为eth0,第二块网卡称为eth1
ppp接口
ppp表示ppp设备接口,并附加数字来反映ppp设备的序号。如第一个ppp接口称为ppp0,第二个ppp接口称为ppp1。采用ISDN或ADSL等方式接入Internet时使用ppp接口
Linux网络端口
采用TCP/IP协议的服务器可为客户机提供各种网络服务,如www、FTP等。为了区分不同类型的网络连接, TCP/IP利用端口号来进行区别
端口号的取值范围为0~65535。
根据功能不同,linux将其分为三类:
0~255:最常用的服务端口,包括FTP、WWW等
256~1024:其他的专用服务
1024~65535:动态分配
网络相关配置文件
/etc/sysconfig/network
常见配置项如下:
NETWORKING:值为yes或no,表示主机是否支持网络功能
HOSTNAME:主机名(即域名)
GATEWAY: 默认网关
FORWARD_IPV4:设置本机是否允许转发IPV4的数据包
DOMAINNAME:此台主机所属的网络域
GATEWAYDEV:连接网关的设备,例如eth0,如果是拨号用户则设为ppp0
/etc/sysconfig/network-scripts/ ifcfg-eth0
常见配置项如下:
DEVICE=eth0:设备名称
ONBOOT=yes:起动时是否起动该设备,省略该行表示yes
BOOTPROTO=none:启动协议,none表示使用用户设置的ip地址,dhcp表示从dhcp获得ip地址。省略该行表示使用设置的IP地址。
IPADDR=192.168.14.11:IP地址
NETMASK=255.255.255.0:子网掩码
BROADCAST=192.168.14.255:广播地址
NETWORK=192.168.14.0:网络地址
/etc/host.conf
域名解析配置文件,常见配置项如下:
order: 解析顺序
例如: order hosts,bind,nis: 先查询解析/etc/hosts文件,然后DNS,再是NIS
multi on:标识是否运行/etc/hosts文件允许主机指定多个地址,on为运行
nospoof on:是否允许服务器对ip地址进行欺骗,on为不允许
/etc/hosts
主机名列表文件/etc/hosts
格式:ip地址 主机名 别名
例如:192.168.14.15 qq.yys.com qq
/etc/resolv.conf
域名服务器设置文件,常见配置项如下:
nameserver:定义DNS服务器的IP地址
domain:定义本地域名
search:定义域名的搜索列表
sortlist:对返回的域名进行排序
注意:
search的多个参数指明域名查询顺序。当要查询没有域名的主机,主机将在由search声明的域中分别查找。
domain和search不能共存;如果同时存在,后者覆盖前者。
sortlist允许将得到域名结果进行特定的排序。它的参数为网络/掩码对,允许任意的排列顺序。
etc/protocols
协议定义文件
格式:协议名称 协议号 别名
例如:tcp 6 TCP
/etc/services
网络服务列表文件
列出了系统支持的服务名称、服务使用的端口号和协议类型、服务的别名、
配置网络接口的工具
可以使用三种不同的工具完成:
网络几口配置程序netconfig(或ntsysv)
在终端输入命令netconfig(或ntsysv)
图形配置工具
开始/系统/配置本地网络或右击"网上邻居"
终端命令ifconfig
格式:ifconfig <设备名><IP地址>netmask <掩码>
例如:ifconfig eth0 192.168.15.11 netmask 255.255.255.0
网络接口的启动和禁用
网络控制程序network
/etc/init.d/network start|stop|restart
网络接口的查看
使用终端命令ifconfig方便地查看系统目前所有活跃网络接口的详细信息
例如:
ifconfig
ifconfig eth0
常用shell网络命令
hostname命令:查看或修改计算机的主机名
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)