学习一Java的获取IP方法
由于开始准备考网工了,Java感觉有些落下和遗忘,现在开始把它再捡起来。
那么就从JAVA网络模块开始吧
<span style="font-family: Arial, Helvetica, sans-serif;">/*</span>
* 本实例主要是通过inetAddress类的getLocalHost()方法获取本地主机的InetAddress对象
* 然后调用该对象的getHostAddress方法获得本地主机的IP地址
* public static InetAddress getLocalHost() throws UnknownHostException
* 返回值:IP
* 异常:如果找不到主机则抛出UnknownHostException异常
*/
package doudou.example.InternetAPP;
import java.awt.Rectangle;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowEvent;
import java.net.InetAddress;
import java.net.UnknownHostException;
import javax.swing.*;
public class GetLocalHostIpFrame extends JFrame{
private static JFrame frame;
private static JPanel panel;
private static JButton getHostIpBtn; //获取IP
private static JButton exit; //退出
private static JTextField textField;
private static JLabel label;
public static void main(String[] args){
frame=new JFrame("获取现在的主机IP地址");
panel=new JPanel();
textField=new JTextField();
label=new JLabel("IP:");
getHostIpBtn=new JButton("获取主机ip地址");
exit=new JButton("退出");
panel.setLayout(null); //取消掉默认的布局管理器
/*
* 主要实现的code区域
*/
getHostIpBtn.addActionListener(new ActionListener(){
public void actionPerformed(final ActionEvent e){
try{
InetAddress inetAddr=InetAddress.getLocalHost(); //创建本地主机的InetAddress对象
String ip=inetAddr.getHostAddress(); //获取本地主机的IP
textField.setText(ip); //文本框中显示
}catch(UnknownHostException e1){
e1.printStackTrace();
}
}
});
exit.addActionListener(new ActionListener(){
@Override
public void actionPerformed(ActionEvent e) {
// TODO 自动生成的方法存根
System.exit(0);
}
});
//设置各组件的大小
label.setBounds(50,50,50,50);
textField.setBounds(new Rectangle(100,50,200,50));
getHostIpBtn.setBounds(100,130,100,50);
exit.setBounds(100,180,100,50);
panel.add(label);
panel.add(textField);
panel.add(getHostIpBtn);
panel.add(exit);
frame.add(panel);
frame.setSize(500,500);
frame.setDefaultLookAndFeelDecorated(true);
frame.setVisible(true);
}
}
参考JAVA API 可以发现 我们所用到的方法如下
①getHostAddress
public String getHostAddress()
- 返回 IP 地址字符串(以文本表现形式)。
-
-
-
返回:
- 字符串格式的原始 IP 地址。 从以下版本开始:
- JDK1.0.2
②getLocalHost
public static InetAddress getLocalHost() throws UnknownHostException
-
返回本地主机。
如果有安全管理器,则使用本地主机名和
-1
作为参数来调用其checkConnect
方法,以查看是否允许该操作。如果不允许该操作,则返回表示回送地址的 InetAddress。 -
-
-
返回:
- 本地主机的 IP 地址。 抛出:
-
UnknownHostException
- 如果找不到host
的任何 IP 地址。
另请参见:
-
SecurityManager.checkConnect(java.lang.String, int)
-
- API中还有Inet4Address,Inet6Address 很明显4 6的含义很直接IPv4 v6,这只是开始,路还很远很远,不知道能不能坚持把一本书上的实例在休闲时间实现完毕。
- 希望这一路上能受前辈指点一二
-
- May Happiness be with me forever!