【微信公众号交友源码】【Net Core 商城源码】【开源框架源码书籍】ip 源码

时间:2024-11-25 02:52:40 来源:surfpython源码 编辑:简单登录源码php

1.ip Դ?源码?
2.ifconfig源码分析

ip 源码

ip Դ??

       1.得到局域网网段,可由自己机器的源码IP来确定 (也可以手动获取主机IP-CMD-ipconfig /all)

       2.根据IP类型,一次遍历局域网内IP地址

       JAVA类,源码编译之后直接运行便可以得到局域网内所有IP,源码具体怎样使用你自己编写相应代码调用便可

       代码如下::

       package bean;

       import java.io.*;

       import java.util.*;

       public class Ip{

       static public HashMap ping; //ping 后的结果集

       public HashMap getPing(){ //用来得到ping后的结果集

       return ping;

       }

       //当前线程的数量, 防止过多线程摧毁电脑

       static int threadCount = 0;

       public Ip() {

       ping = new HashMap();

       }

       public void Ping(String ip) throws Exception{

       //最多个线程

       while(threadCount>)

       Thread.sleep();

       threadCount +=1;

       PingIp p = new PingIp(ip);

       p.start();

       }

       public void PingAll() throws Exception{

       //首先得到本机的源码微信公众号交友源码IP,得到网段

       InetAddress host = InetAddress.getLocalHost();

       String hostAddress = host.getHostAddress();

       int k=0;

       k=hostAddress.lastIndexOf(“.”);

       String ss = hostAddress.substring(0,源码Net Core 商城源码k+1);

       for(int i=1;i <=;i++){ //对所有局域网Ip

       String iip=ss+i;

       Ping(iip);

       }

       //等着所有Ping结束

       while(threadCount>0)

       Thread.sleep();

       }

       public static void main(String[] args) throws Exception{

       Ip ip= new Ip();

       ip.PingAll();

       java.util.Set entries = ping.entrySet();

       Iterator iter=entries.iterator();

       String k;

       while(iter.hasNext()){

       Map.Entry entry=(Map.Entry)iter.next();

       String key=(String)entry.getKey();

       String value=(String)entry.getValue();

       if(value.equals(“true”))

       System.out.println(key+“-->”+value);

       }

       }

       class PingIp extends Thread{

       public String ip; // IP

       public PingIp(String ip){

       this.ip=ip;

       }

       public void run(){

       try{

       Process p= Runtime.getRuntime()。exec (“ping ”+ip+ “ -w -n 1”);

       InputStreamReader ir = new InputStreamReader(p.getInputStream());

       LineNumberReader input = new LineNumberReader (ir);

       //读取结果行

       for (int i=1 ; i <7; i++)

       input.readLine();

       String line= input.readLine();

       if (line.length() < || line.substring(8,源码)。equals(“timed out”))

       ping.put(ip,源码“false”);

       else

       ping.put(ip,“true”);

       //线程结束

       threadCount -= 1;

       }catch (IOException e){ }

       }

       }

       }

ifconfig源码分析

       在ifconfig源码的main函数中,程序首先处理以 '-' 开始的源码参数,如 '-a' 和 '-s',源码并判断其作用。源码接着,源码尝试打开内核支持的源码开源框架源码书籍所有协议的套接字,通过调用sockets_open函数实现,源码如果失败,源码会输出错误信息并退出程序。

       如果命令行参数为0,横渡桃源码头意味着显示所有网卡的信息,程序会调用if_print函数。如果用户提供了一个网卡名称,程序会将其复制到ifr.ifr_name中,pixellab源码批量导入并处理下一个参数,可能是协议簇名或选项。如果找到协议簇,将其af属性赋值给addr_family,并保存对应的套接字描述符skfd。

       接下来,程序进入一个循环,处理剩余的参数。如果是开关参数,调用set_flag或clr_flag函数处理;如果是功能参数,直接通过ioctl函数处理。在处理IP地址时,会根据协议簇类型调用相应的ioctl函数,如SIOCSIFADDR,来设置接口的地址信息。

扩展资料

       ifconfig是linux中用于显示或配置网络设备(网络接口卡)的命令,英文全称是network interfaces configuring。配置网卡的IP地址语法例:ifconfig eth0 ..0.1 netmask ...0

copyright © 2016 powered by 皮皮网   sitemap