设计本机ip(设定本机ip)
大家好!今天让小编来大家介绍下关于设计本机ip的问题,以下是小编对此问题的归纳整理,让我们一起来看看吧。
创意岭作为行业内优秀的企业,服务客户遍布全球各地,相关业务请拨打电话:175-8598-2043,或添加微信:1454722008
文章目录列表:
一、ip地址分类及网段有哪些?
A类IP地址 地址范围1.0.0.0到127.255.255.255。可用的A类网络有126个,每个网络能容纳1亿多个主机。
B类IP地址地址范围128.0.0.0-191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
C类IP地址范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
扩展资料:
特殊的网址
1、每一个字节都为0的地址(“0.0.0.0”)对应于当前主机;
2、IP地址中的每一个字节都为1的IP地址(“255.255.255.255”)是当前子网的广播地址;
3、IP地址中凡是以“11110”开头的E类IP地址都保留用于将来和实验使用。
4、IP地址中不能以十进制“127”作为开头,该类地址中数字127.0.0.1到127.255.255.255用于回路测试,如:127.0.0.1可以代表本机IP地址,用“http://127.0.0.1”就可以测试本机中配置的Web服务器。
5、网络ID的第一个8位组也不能全置为“0”,全“0”表示本地网络。
IP网络段
IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。
查找ip有个cmd命令:tracert 后面加ip地址,可以查所经过的路由!
局域网的IP
在一个局域网中,有两个IP地址比较特殊,一个是网络号,一个是广播地址。网络号是用于三层寻址的地址,它代表了整个网络本身;另一个是广播地址,它代表了网络全部的主机。、网络号是网段中的第一个地址,广播地址是网段中的最后一个地址,这两个地址是不能配置在计算机主机上的。
例如在192.168.0.0这样的网段中,网络号是192.168.0.0,广播地址是192.168.0.255。
因此,在一个局域网中,能配置在计算机中的地址比网段内的地址要少两个(网络号、广播地址),这些地址称之为主机地址。在上面的例子中,主机地址就只有192.168.0.1至192.168.0.254可以配置在计算机上了。
IPV4和IPV6
现有的互联网是在IPv4协议的基础上运行的。IPv6是下一版本的互联网协议,也可以说是下一代互联网的协议,它的提出最初是因为随着互联网的迅速发展,IPv4定义的有限地址空间将被耗尽,而地址空间的不足必将妨碍互联网的进一步发展。
为了扩大地址空间,拟通过IPv6以重新定义地址空间。IPv4采用32位地址长度,只有大约43亿个地址,估计在2005~2010年间将被分配完毕,而IPv6采用128位地址长度,几乎可以不受限制地提供地址。
按保守方法估算IPv6实际可分配的地址,整个地球的每平方米面积上仍可分配1000多个地址。在IPv6的设计过程中除解决了地址短缺问题以外,还考虑了在IPv4中解决不好的其它一些问题,主要有端到端IP连接、服务质量(QoS)、安全性、多播、移动性、即插即用等。
与IPv4相比,IPv6主要有如下一些优势。第一,明显地扩大了地址空间。IPv6采用128位地址长度,几乎可以不受限制地提供IP地址,从而确保了端到端连接的可能性。
第二,提高了网络的整体吞吐量。由于IPv6的数据包可以远远超过64k字节,应用程序可以利用最大传输单元(MTU),获得更快、更可靠的数据传输,同时在设计上改进了选路结构,采用简化的报头定长结构和更合理的分段方法。
使路由器加快数据包处理速度,提高了转发效率,从而提高网络的整体吞吐量。第三,使得整个服务质量得到很大改善。报头中的业务级别和流标记通过路由器的配置可以实现优先级控制和QoS保障,从而极大改善了IPv6的服务质量。第四,安全性有了更好的保证。
采用IPSec可以为上层协议和应用提供有效的端到端安全保证,能提高在路由器水平上的安全性。第五,支持即插即用和移动性。设备接入网络时通过自动配置可自动获取IP地址和必要的参数,实现即插即用,简化了网络管理,易于支持移动节点。
而且IPv6不仅从IPv4中借鉴了许多概念和术语,它还定义了许多移动IPv6所需的新功能。第六,更好地实现了多播功能。在IPv6的多播功能中增加了“范围”和“标志”,限定了路由范围和可以区分永久性与临时性地址,更有利于多播功能的实现。
随着互联网的飞速发展和互联网用户对服务水平要求的不断提高,IPv6在全球将会越来越受到重视。实际上,并不急于推广IPv6,只需在现有的IPv4基础上将32位扩展8位到40位,即可解决IPv4地址不够的问题。这样一来可用地址数就扩大了256倍。
参考资料:百度百科-IP地址
二、怎么实现(192.168.1.2-192.168.1.10) DNS是202.96.209.5或202.96.133 自动循环切换IP 高手指点
你这个批处理只是设置IP192.168.1.2 和DNS是202.96.209.133的功能,没有别的功能,里面很多是无用提示代码都可以删除。 这批处理废话老多了。
你如果要多个IP 换就准备多个上述批处理就好了。 自动切换 192.168.1.2~192.168.1.10是设计缺陷。 手动切换还差不多
三、用java 编写一个可以实现IP地址查询功能的课程设计
下面是获得本机IP地址的方法,跟你的程序捆绑起来,互相发送消息的时候直接将IP发送过去
private static String[] getAllLocalHostIP(){
List<String> res=new ArrayList<String>();
Enumeration netInterfaces;
try {
netInterfaces = NetworkInterface.getNetworkInterfaces();
InetAddress ip = null;
while (netInterfaces.hasMoreElements()) {
NetworkInterface ni = (NetworkInterface) netInterfaces.nextElement();
Enumeration nii=ni.getInetAddresses();
while(nii.hasMoreElements()){
ip = (InetAddress) nii.nextElement();
if (ip.getHostAddress().indexOf(":") == -1) {
res.add(ip.getHostAddress());
}
}
}
} catch (SocketException e) {
e.printStackTrace();
}
return (String[])res.toArray(new String[0]);
}
这是个扫描局域网ip的windows解决方案,在unix系统下可能有问题
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.ArrayList;
public class LanIP {
public ArrayList<String> getLanIPArrayList() {
ArrayList<String> arrayIP = null;
try {
InitSystem initSystem = null;
initSystem = new InitSystem();
Thread thread = new Thread(initSystem);
thread.start();
thread.join();
arrayIP = initSystem.getArrayIPUsed();
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (InterruptedException e) {
e.printStackTrace();
}
return arrayIP;
}
private class InitSystem implements Runnable {
private int firstIP = 2;// 查询的 IP 地址的最后一位起始点
private int lastIP = 255;// 查询的 IP 地址的最后一位结束点
private volatile ArrayList<Thread> arrayThread;// 子线程段
private final int MAXTHREADNUM = 30; // 最大同时进行的子线程数量
private int threadNumNow;// 当前正在进行的子线程数量
private volatile ArrayList<String> arrayIP;// 局域网查询所有可能的 IP 地址的结果集
private volatile ArrayList<String> arrayIPUsed;// 局域网查询已经使用的 IP 地址的结果集
private InitSystem(String ip) {
arrayIP = new ArrayList<String>();
arrayIPUsed = new ArrayList<String>();
arrayThread = new ArrayList<Thread>();
setIPAddressList(ip);
}
private InitSystem() throws UnknownHostException {
this(InetAddress.getLocalHost().getHostAddress());
}
private synchronized ArrayList<String> getArrayIPUsed() {
try {
while (arrayIP.size() > 0) {
Thread.sleep(300);
}
} catch (InterruptedException e) {
e.printStackTrace();
}
return arrayIPUsed;
}
private void setIPAddressList(String ip) {
// 根据这个 ip 地址查询它所在的局域网的所有可能 IP 地址的集合
int lastPointIndex = ip.lastIndexOf('.');
String stringIPHead = ip.substring(0, ++lastPointIndex);
String stringIP = null;
for (int i = firstIP; i <= lastIP; i++) {
stringIP = stringIPHead + i;
arrayIP.add(stringIP);
}
}
public void run() {
synchronized (this) {
try {
while (arrayIP.size() > 0) {
while (threadNumNow >= MAXTHREADNUM) {
for (Thread thread : arrayThread) {
if (!thread.getState().equals(
Thread.State.TERMINATED)) {
thread.join(5);
}
--threadNumNow;
}
arrayThread = new ArrayList<Thread>();
}
Thread thread = new Thread(new InnerClass(arrayIP
.remove(0)));
thread.start();
threadNumNow++;
arrayThread.add(thread);
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
private class InnerClass implements Runnable {
// 线程查询一个 IP 是否是可以连接的 是则加入到相应的 IP 数组
private String ip;
private InnerClass(String ip) {
this.ip = ip;
}
private boolean isUsedIPAddress(String ip) {
synchronized (this) {
// 判断这个 IP 地址在当前局域网中是否是可连接的 IP
Process process = null;
BufferedReader bufReader = null;
String bufReadLineString = null;
try {
process = Runtime.getRuntime().exec(
"ping " + ip + " -w 100 -n 1");
bufReader = new BufferedReader(new InputStreamReader(
process.getInputStream()));
for (int i = 0; i < 6 && bufReader != null; i++) {
bufReader.readLine();
}
bufReadLineString = bufReader.readLine();
if (bufReadLineString == null) {
process.destroy();
return false;
}
if (bufReadLineString.indexOf("timed out") > 0
|| bufReadLineString.length() < 17
|| bufReadLineString.indexOf("invalid") > 0) {
process.destroy();
return false;
}
} catch (IOException e) {
e.printStackTrace();
}
process.destroy();
return true;
}
}
public void run() {
synchronized (this) {
if (isUsedIPAddress(ip)) {
arrayIPUsed.add(ip);
}
}
}
}
}
}
四、ip地址分类并列举
IP地址类型
最初设计互联网络时,为了便于寻址以及层次化构造网络,每个IP地址包括两个标识码(ID),即网络ID和主机ID。同一个物理网络上的所有主机都使用同一个网络ID,网络上的一个主机(包括网络上工作站,服务器和路由器等)有一个主机ID与其对应。IP地址根据网络ID的不同分为5种类型,A类地址、B类地址、C类地址、D类地址和E类地址。
1. A类IP地址
一个A类IP地址由1字节的网络地址和3字节主机地址组成,网络地址的最高位必须是“0”, 地址范围从1.0.0.0 到126.0.0.0。可用的A类网络有126个,每个网络能容纳1亿多个主机。
2. B类IP地址
一个B类IP地址由2个字节的网络地址和2个字节的主机地址组成,网络地址的最高位必须是“10”,地址范围从128.0.0.0到191.255.255.255。可用的B类网络有16382个,每个网络能容纳6万多个主机 。
3. C类IP地址
一个C类IP地址由3字节的网络地址和1字节的主机地址组成,网络地址的最高位必须是“110”。范围从192.0.0.0到223.255.255.255。C类网络可达209万余个,每个网络能容纳254个主机。
4. D类地址用于多点广播(Multicast)。
D类IP地址第一个字节以“lll0”开始,它是一个专门保留的地址。它并不指向特定的网络,目前这一类地址被用在多点广播(Multicast)中。多点广播地址用来一次寻址一组计算机,它标识共享同一协议的一组计算机。
5. E类IP地址
以“llll0”开始,为将来使用保留。
全零(“0.0.0.0”)地址对应于当前主机。全“1”的IP地址(“255.255.255.255”)是当前子网的广播地址。
在IP地址3种主要类型里,各保留了3个区域作为私有地址,其地址范围如下:
A类地址:10.0.0.0~10.255.255.255
B类地址:172.16.0.0~172.31.255.255
C类地址:192.168.0.0~192.168.255.255
以上就是小编对于设计本机ip问题和相关问题的解答了,如有疑问,可拨打网站上的电话,或添加微信。
推荐阅读: