显示本机IP(GUI版)

IPUtil.java

 

package com.gary.net;

import java.net.Inet4Address;
import java.net.InetAddress;
import java.net.NetworkInterface;
import java.net.SocketException;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashMap;

public class IPUtil {

	public static void main(String[] args) throws SocketException {
		System.out.println(getLocalIPStr());
	}
	
	public static ArrayList<HashMap<String, String>> getLocalIP() throws SocketException {
		ArrayList<HashMap<String, String>> ips = new ArrayList<HashMap<String, String>>();
		Enumeration<NetworkInterface> allNetInterfaces = NetworkInterface.getNetworkInterfaces();
		InetAddress ip = null;
		while (allNetInterfaces.hasMoreElements()) {
			NetworkInterface netInterface = (NetworkInterface) allNetInterfaces
					.nextElement();
			Enumeration<InetAddress> addresses = netInterface.getInetAddresses();
			while (addresses.hasMoreElements()) {
				ip = (InetAddress) addresses.nextElement();
				if (ip != null && ip instanceof Inet4Address 
						&& !ip.getHostAddress().equals("127.0.0.1")) {
					HashMap<String, String> nameAndIP = new HashMap<String, String>();
					nameAndIP.put("InterfaceName", netInterface.getName());
					nameAndIP.put("IP", ip.getHostAddress());
					ips.add(nameAndIP);
				}
			}
		}
		return ips;
	}
	
	public static String print(ArrayList<HashMap<String, String>> ips){
		StringBuffer sb = new StringBuffer();
		for (HashMap<String, String> ip : ips) {
			sb.append("InterfaceName:" + ip.get("InterfaceName") + "\n");
			sb.append("IP:" + ip.get("IP") + "\n");
		}
		return sb.toString();
	}
	
	public static String getLocalIPStr(){
		try {
			return print(getLocalIP());
		} catch (SocketException e) {
			return "127.0.0.1";
		}
	}
}

 

ViewIPFrame.java

 

package com.gary.net;

import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JFrame;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
import javax.swing.JMenuItem;
import javax.swing.JOptionPane;
import javax.swing.JTextArea;

public class ViewIPFrame extends JFrame implements ActionListener{
	
	private static final long serialVersionUID = 6389756886534379680L;

	JMenuItem jmiExit,jmiAbout;
	public ViewIPFrame(){
		jmiExit = new JMenuItem("Exit");
		jmiAbout = new JMenuItem("About");
		JMenuBar jmb = new JMenuBar();
		setJMenuBar(jmb);
		
		JMenu fileMenu = new JMenu("File",false);
		JMenu helpMenu = new JMenu("Help",false);
		
		jmb.add(fileMenu);
		jmb.add(helpMenu);
		
		fileMenu.add(jmiExit);
		helpMenu.add(jmiAbout);
		
		jmiExit.addActionListener(this);
		jmiAbout.addActionListener(this);
	}
	
	public void actionPerformed(ActionEvent e) {
		if(e.getSource() == jmiExit){
			System.exit(0);
		}else if(e.getSource() == jmiAbout){
			JOptionPane.showMessageDialog(this,"View IP Address \n author: gary \n bug report: qq 408036296");
		}
	}
	
	public static void main(String [] args){
		JTextArea jtextArea = new JTextArea(IPUtil.getLocalIPStr());
		jtextArea.setEditable(false);
		ViewIPFrame frame=new ViewIPFrame();
		frame.setTitle("viewIP");
		frame.getContentPane().add(jtextArea);
		frame.setSize(200,100);
		frame.pack();
		frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
		frame.setVisible(true);
	}
}

 

界面预览


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看README.md文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值