如何用C语言编写一个自动定时更换本机IP地址的代码可用于WIFI连接的电脑。

如何用C语言编写一个自动定时更换本机IP地址的代码可用于WIFI连接的电脑。,第1张

WIFI连接,一般都是由连接的路由器上的DHCP自动分配的,即使自行修改,也不能修改连接的路由器上的公网IP地址,连接网络后,使用的还是路由器上的公网地址,能修改的只是本地的IP地址。

只要定时执行设置本地IP地址即可,代码仅供参考:

ManagementBaseObject inPar = null;

ManagementBaseObject outPar = null;

ManagementClass mc = new ManagementClass("Win32_NetworkAdapterConfiguration");

ManagementObjectCollection moc = mcGetInstances();

foreach(ManagementObject mo in moc)

{

if(! (bool) mo["IPEnabled"])

continue;

inPar = moGetMethodParameters("EnableStatic");

inPar["IPAddress"] = new string[] { "1921680111" };

outPar = moInvokeMethod("EnableStatic", inPar, null);

}

查看本机IP地址及子网掩码的方法有如下几种:

1、右键点击网上邻居图标选择属性,在打开的窗口里选择本地连接,右键点击该图标选择属性,在新打开的窗口里选择Intelnet协议(TCP/IP)点击窗口下方的属性,如果本机系统采用的是静态IP地址,则可以直接看到,如果是自动获取IP,就不能用这种方法了;

2、a、右键点击任务栏右下角的网络连接,如图,WinXP是两个小电脑重叠的图示:

b、选择打开网络及共享中心(WinXP中是选择属性),在打开的窗口中选择右侧的更改适配器设置,如下图

c、后续 *** 作同第一种方法;

3、点击开始,点击控制面板,找到网络及共享中心,后续 *** 作同第一种方法;

4、在命令行窗口运行IPCONFIG /ALL来查看,首先在运行栏(WinXP直接点击开始即可看到,Win7下直接在搜素框输入cmd,或者使用Windows徽标键+R打开运行)里输入CMD打开命令行窗口,然后输入IPCONFIG /ALL,就可以查看本机所有网络适配器的设置了(Win7下主要看IPv4)。

A类网络的IP地址范围为:1001-126255255254;B类网络的IP地址范围为:128101-191255255254;C类网络的IP地址范围为:192011-223255255254。

IP地址是适合大型网和小型网的。地址是自定义的,它的最高位定义地址的类型。A类地址支持多个主机在一个网:最高位为0,跟随有7Bit网络部分和24Bit主机部分。在B类地址,最高位是非0,跟随有14Bit网络号和16Bit主机号。

C类地址以110开始,跟随有21Bit网络号和8Bit主机号。按常规IP地址由加点的字符给出,地址由四部分10进制数组成,用点作分隔。

IP分组的转发规则

路由器仅根据网络地址进行转发。当IP数据包经由路由器转发时,如果目标网络与本地路由器直接相连,则直接将数据包交付给目标主机,这称为直接交付;否则,路由器通过路由表查找路由信息,并将数据包转交给指明的下一跳路由器,这称为间接交付。

路由器在间接交付中,若路由表中有到达目标网络的路由,则把数据包传送给路由表指明的下一跳路由器;如果没有路由,但路由表中有一个默认路由,则把数据包传送给指明的默认路由器;如果两者都没有,则丢弃数据包并报告错误。

如何用网路号为255255255224配置IP,子网掩码,闸道器,DNS 求解答求举例

例如19216810的网段

子网掩码是255255255224 就是相当于27位子(总共32为)

111111111111111111111111111    00000

ip如果设定1921681100

换算成二进位制

111111111111111111111111011    00100

子网掩码前面是1的部分是固定的

所以ip范围是192168197--1921681126

其中192168197和126那个是不可以用的,你闸道器设为ip段中的一个

dns一般地区有地区dns,但是可以设定谷歌dns

8888

8844

子网换算可以用换算工具

ip:17230125124 子网掩码:2552552480 求网路号

172301200 /21

第三段地址8个地址一组

17230125124所在网段172301200/21-17230127255/21

2116618473子网掩码255255255224网路号是多少

楼上说错了吧?

24什么都不是啊!

网路号是:2116618464

已知网路号如何求子网掩码?

类范围:IP地址常采用点分十进位制表示方法:XYYY,在这里,X=1--126时称为A类地址;X=128--191时成为B类地址;X=192--223时称为C类地址;如1020252130,因为X=10在1--126范围内所以称为A类地址,预设子网掩码:A类为255000;B类为25525500;C类为2552552550

当我们要划分子网用到子网掩码M时,类子网掩码的格式应为:A类为255M00;B类为255255M0;C类为255255255M M是相应的子网掩码,如255255255240

十进位制计算基数:256等一下我们所有的十进位制计算都要用256来进行

几个公式变数的说明:

Sub_block:可分配子网块的大小,指在某一子网掩码下的子网的块数

Sub_num:实际可分配子网数,指可分配子网块中要剔除首,尾两块,这是某一子网掩码下可分配的实际子网数量,它等于Sub_block-2

IP_block:每个子网可分配的IP地址块大小

IP_num:每个子网实际可分配的IP地址数,因为每个子网的首,尾IP地址必须保留(一个为网路地址,一个为广播地址),所以它等于IP_block-2IP_num也用于计算主机段

M:子网掩码( mask)

他们之间的公式如下:

M=256-IP_block

IP_block=256/Sub_block,反之Sub_block=256/IP_block

IP_num=IP_block-2

Sub_num=Sub_block-2

2的冥数:要熟练掌握2^8(256)以内的2的冥数的十进位制数,如128=2^7,64=2^6,这可使我们立即推算出Sub_block和IP_block数

现在我们举一些例子:

一,已知所需子网数12,求实际子网数

解:这里实际子网数指Sub_num,由于12最接近2的冥数为16(2^4),既Sub_block=16,那么Sub_num=16-2=14,故实际子网数为14

二,已知一个B类子网每个子网主机数要达到60X255(约相当于XY01--XY59254的数量)个,求子网掩码

解:1 60接近2的冥数为64(2^6),即IP_block=64

2 子网掩码M=256-IP_block=256-64=192

3 子网掩码格式B类是:255255M0,所以子网掩码为:2552551920

三如果所需子网数为7,求子网掩码

解:1 7最接近2的冥为8,但8个Sub_block因为要保留首,尾2个子网块,即8-2=6<7,并不能达到所需子网数,所以应该取2的冥为16,即Sub_block=16

2 IP_block=256/Sub_block=256/16=16

3 子网掩码M=256-IP_block=256-16=240

四已知网路地址为211134120,要有4个子网,求子网掩码及主机段

解:1 211YYY是一个C类网,子网掩码格式为255255255M

2 4个子网,4接近2的冥是8(2^3),所以Sub_block=8,Sub_num=8-2=6

3 IP_block=256/Sub_block=256/8=32

4 子网掩码M=256-IP_block=256-32=224

5 所以子网掩码表示为255255255224

6 因为子网块中的可分配主机又有首,尾两个不能使用,所以可分配6个子网块(Sub_num),每块32个可分配主机块(IP_block) 即:32-63,64-95,96-127,128-159,160-191,192-223

首块(0-31)和尾块(224-255)不能使用

7 每个子网块中的可分配主机块又有首,尾两个不能使用(一个是子网网路地址,一个是子网广播地址),所以主机段分别为:33-62,65-94,97-126,129-158,161-190,193-222

8 所以子网掩码为255255255224 主机段共6段为:2111341233--2111341262;

2111341265--3111341294;2111341297--21113412126;21113412129--21113412158;

21113412161--21113412190;21113412193--21113412222 可以任选其中的4段作为4个子网

介绍子网掩码的两种简便演算法

IP地址是32位的二进位制数值,用于在TCP/IP通讯协议中标记每台计算机的地址。通常我们使用点式十进位制来表示,如19216805等等。

每个IP地址又可分为两部分。即网路号部分和主机号部分:网路号表示其所属的网路段编号,主机号则表示该网段中该主机的地址编号。按照网路规模的大小,IP地址可以分为A、B、C、D、E五类,其中A、B、C类是三种主要的型别地址,D类专供多目传送用的多目地址,E类用于扩充套件备用地址。A、B、C三类IP地址有效范围如下表:

类别 网路号 /占位数 主机号 /占位数 用途

A 1~126 / 8 0~255 0~255 1~254 / 24 国家级

B 128~191 0~255 / 16 0~255 1~254 / 16 跨过组织

C 192~223 0~255 0~255 / 24 1~254 / 8 企业组织

随着互连网应用的不断扩大,原先的IPv4的弊端也逐渐暴露出来,即网路号占位太多,而主机号位太少,所以其能提供的主机地址也越来越稀缺,目前除了使用NAT在企业内部利用保留地址自行分配以外,通常都对一个高类别的IP地址进行再划分,以形成多个子网,提供给不同规模的使用者群使用。

这里主要是为了在网路分段情况下有效地利用IP地址,通过对主机号的高位部分取作为子网号,从通常的网路位界限中扩充套件或压缩子网掩码,用来建立某类地址的更多子网。但建立更多的子网时,在每个子网上的可用主机地址数目会比原先减少。

子网掩码是标志两个IP地址是否同属于一个子网的,也是32位二进位制地址,其每一个为1代表该位是网路位,为0代表主机位。它和IP地址一样也是使用点式十进位制来表示的。如果两个IP地址在子网掩码的按位与的计算下所得结果相同,即表明它们共属于同一子网中。

在计运算元网掩码时,我们要注意IP地址中的保留地址,即“ 0”地址和广播地址,它们是指主机地址或网路地址全为“ 0”或“ 1”时的IP地址,它们代表着本网路地址和广播地址,一般是不能被计算在内的。

下面就来以例项来说明子网掩码的演算法:

对于无须再划分成子网的IP地址来说,其子网掩码非常简单,即按照其定义即可写出:如某B类IP地址为 101230,无须再分割子网,则该IP地址的子网掩码为25525500。如果它是一个C类地址,则其子网掩码为 2552552550。其它类推,不再详述。下面我们关键要介绍的是一个IP地址,还需要将其高位主机位再作为划分出的子网网路号,剩下的是每个子网的主机号,这时该如何进行每个子网的掩码计算。

一、利用子网数来计算

在求子网掩码之前必须先搞清楚要划分的子网数目,以及每个子网内的所需主机数目。

1)将子网数目转化为二进位制来表示

2)取得该二进位制的位数,为 N

3)取得该IP地址的类子网掩码,将其主机地址部分的的前N位置 1 即得出该IP地址划分子网的子网掩码。

如欲将B类IP地址16819500划分成27个子网:

1)27=11011

2)该二进位制为五位数,N = 5

3)将B类地址的子网掩码25525500的主机地址前5位置 1,得到 2552552480

即为划分成 27个子网的B类IP地址 16819500的子网掩码。

二、利用主机数来计算

1)将主机数目转化为二进位制来表示

2)如果主机数小于或等于254(注意去掉保留的两个IP地址),则取得该主机的二进位制位数,为 N,这里肯定 N<8。如果大于254,则 N>8,这就是说主机地址将占据不止8位。

3)使用255255255255来将该类IP地址的主机地址位数全部置1,然后从后向前的将N位全部置为 0,即为子网掩码值。

如欲将B类IP地址16819500划分成若干子网,每个子网内有主机700台:

1) 700=1010111100

2)该二进位制为十位数,N = 10

3)将该B类地址的子网掩码25525500的主机地址全部置 1,得到255255255255

然后再从后向前将后 10位置0,即为: 11111111111111111111110000000000

即2552552520。这就是该欲划分成主机为700台的B类IP地址 16819500的子网掩码。

转载

知道网路号如何求子网掩码?

普通的A,B,C类网路号的子网掩码很规范,/8,/16,/24等

但是在VLSM存在的情况下,知道网路号是无法求子网掩码的

IP地址是由IP地址和子网掩码共同组成

已知IP地址和子网掩码如何求网路号

要看子网掩码变长在第几节,255255255224是在第四节借了位 把224转换为2进位制,windows的计算器科学型能帮你计算。是11100000,借了三位 借了三位,子网个数为2的三次方等于8 即八个子网 其实书上说得挺复杂,我感觉,计算网路号最简单的方法

网路号为2201171130子网掩码怎么算

网路号为2201171130为C类地址,预设掩码是2552552550。如果划分了子网,掩码为人为规划,不是计算出来的。有多种掩码的网路地址都可以为2201171130,如:255255255128,如:255255255192等等。

如何获取本机IP,DNS,闸道器,子网掩码

如果是xp系统的话,直接开启开始按钮,点选执行,输入cmd,进入后输入ipconfig /all就可以看到自己的ip,dns等网路地址了,如果是win7,直接在搜寻里输入cmd,然后同上 *** 作

求145189243的网路号,子网掩码为2552552240

将ip和子网掩码做与运算,结果就是网路号

145189243 & 2552552240

结果是:

14518900

已知IP地址和网路号,求子网掩码。

题呢?IP地址是什么?网路号(网路地址)是什么?什么都没有咋求?

算了,我给你举个例子吧:

IP地址:101160 网路号:101148

都换算成二进位制:

00001010000000010000000100111100 IP地址

00001010000000010000000100110000 网路号

对比就看出来了吧,从左边开始数,相同的写1,从第一个不相同的开始后面都为0,结果就是:

11111111111111111111111111110000 再换算成十进位制为:

255255255240

行了,方法给你了,剩下的你自己算吧。

首先肯定,这台主机用Vmnet虚拟了几种网络试验环境。

看几个地址给出的信息:

1、VMnet8

VMnet8是一个NAT的组网模式,从主机的虚拟网卡出来,连接到vmnet8虚拟交换机,虚拟交换机的另外的口连接到虚拟的NAT服务器,还有一个口连接到虚拟DHCP服务器,其他的口连虚拟机。

2、VMnet1

这是一个Host-Only网络模式,这是用于建立一个与世隔绝的网络环境所用到的,其中vmnet1也是一个虚拟的交换机,交换机的一个端口连接到你的Host上,另外一个端口连接到虚拟的DHCP服务器上,另外剩下的端口就是连虚拟机了。

3、本地链接

这应该是你本地机器的网卡信息了。

以上就是关于如何用C语言编写一个自动定时更换本机IP地址的代码可用于WIFI连接的电脑。全部的内容,包括:如何用C语言编写一个自动定时更换本机IP地址的代码可用于WIFI连接的电脑。、如何查寻我的机子的IP地址与"子网掩码"、如何获取ip地址等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/9527348.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-29
下一篇 2023-04-29

发表评论

登录后才能评论

评论列表(0条)

保存