读取局域网中电脑的IP地址和物理地址并打印到MySql数据库中

这是一个Java程序,用于通过执行`arp -a`命令获取局域网中的IP地址和物理地址(MAC),然后将这些信息插入到MySQL数据库的特定表中。程序首先读取命令输出,解析IP和MAC信息,然后使用JDBC连接数据库并执行INSERT语句。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

package com.alias.test;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.sql.Connection;
import java.sql.Date;
import java.sql.DriverManager;
import java.sql.PreparedStatement;
import java.util.ArrayList;

public class Ip6 {
    static ArrayList<String> arr = new ArrayList<String>();
    static ArrayList<String> arr1 = new ArrayList<String>();
    static ArrayList<String> arr2 = new ArrayList<String>();
    public static void main(String[] args) throws Exception {
        //时间戳
        System.out.println(new Date(System.currentTimeMillis()));
        // dos命令
        String cmd = "arp -a";
        try {
            Process process = Runtime.getRuntime().exec(cmd);
            InputStream is = process.getInputStream();
            InputStreamReader isr = new InputStreamReader(is);
            BufferedReader br = new BufferedReader(isr);
            String content = br.readLine();
            for(int k=0;k<1;k++){
                String substring00 = content.substring(0, content.length());
                System.out.println("substring00="+substring00);
                content = br.readLine();
            }
            System.out.println("=======================================");
            
            int l = content.indexOf(" ",2);
            String substring0 = content.substring(0, l);
            int l1 = content.indexOf("-",0);
            String substring01 = content.substring(3,l1);
            String substring02 = content.substring(l1+3, content.length());
            System.out.println(content);
            content = br.readLine();
            arr.add(substring0);
            arr1.add(substring01);
            arr2.add(substring02);
            while (content != null) {
                int i = content.indexOf(" ",2);
                String substring = content.substring(0, i+3);
                int i1 = content.indexOf(" ",25);
                String substring1 = content.substring(17, i1);
                String substring2 = content.substring(i1+5, content.length());
                System.out.println(content);
                content = br.readLine();
                arr.add(substring);
                arr1.add(substring1);
                arr2.add(substring2);
                //jdbc();//报错
            }
            jdbc();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
    public static void jdbc() throws Exception{
        String str = null;
        String str1 = null;
        String str2 = null;
        for(int n=0;n<arr.size();n++){
            str = arr.get(n).toString();
            str1 = arr1.get(n).toString();
            str2 = arr2.get(n).toString();
            //1.注册驱动
            Class.forName("com.mysql.jdbc.Driver");
            //2.获取连接
            Connection connection = DriverManager.getConnection("jdbc:mysql://localhost:3306/ip", "root", "root");
            //3.编写sql
            String sql = "insert into tab6 (adds,padds,state) value (?,?,?)";
            //4.设置预编译语句执行着
            PreparedStatement ps = connection.prepareStatement(sql);
            //5.设置参数
            ps.setString(1, str);
            ps.setString(2, str1);
            ps.setString(3, str2);
            //6.执行sql
            int i = ps.executeUpdate();
            //7.处理结果
            System.out.println(i);
            //8.释放资源
            ps.close();
            connection.close();
        }
        
        
    }

}
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值