一个综合的网络探测工具,可以端口扫描、域名解析、获取html文件,源码贴在这,请大家指点
有兴趣的看看
/*IP探测器1.0
*Denny Soft
*killme6115@sina.com
*Scanner1.java
*/
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.*;
import java.io.*;
public class Scanner1 extends JFrame
{
GetLocal Gl=new GetLocal();
GetHtml Gh=new GetHtml();
Explore ep=new Explore();
DNS d=new DNS();
Help help=new Help();
JTabbedPane tab=new JTabbedPane();
Scanner1()
{
super("Denny Scanner1.0");
Container cp=getContentPane();
cp.add(tab);
tab.addTab("本机探测",Gl);
tab.addTab("获取Html文件",Gh);
tab.addTab("端口扫描",ep);
tab.addTab("域名解析",d);
tab.addTab("关于",help);
}
public static void main(String args[])
{
Scanner1 frame=new Scanner1();
Toolkit tk=frame.getToolkit();
int w=tk.getScreenSize().width;
int h=tk.getScreenSize().height;
frame.setSize(400,390);
frame.setLocation(w/3,h/3);
frame.setVisible(true);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
}
class GetLocal extends JPanel
{
private JTextField txt1=new JTextField(10),
txt2=new JTextField(10);
private JLabel b1=new JLabel("本机IP地址:"),
b2=new JLabel("本机计算机名:");
private JButton bt=new JButton("<html><font size=3 color=blue>Get"),
clear=new JButton("<html><font size=3 color=blue>Clear");
private JPanel p1=new JPanel(),
p2=new JPanel();
private InetAddress address;
GetLocal()
{
setLayout(new GridLayout(3,2));
add(p1);
add(p2);
p1.setLayout(new GridLayout(2,2));
p1.setSize(300,30);
p2.setLayout(new FlowLayout());
p2.setSize(300,10);
p1.add(b1);
p1.add(txt1);
p1.add(b2);
p1.add(txt2);
p2.add(clear);
p2.add(bt);
bt.addActionListener(new Get());
clear.addActionListener(new Clear());
try
{
address=InetAddress.getLocalHost();
}
catch(Exception e)
{
JOptionPane.showMessageDialog(null,new JButton("无法获取本机地址"),
"Error Message.",JOptionPane.ERROR_MESSAGE);
}
}
class Get implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
txt1.setText(address.getHostAddress());
txt2.setText(address.getHostName());
}
}
class Clear implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
txt1.setText("");
txt2.setText("");
}
}
}
class GetHtml extends JPanel
{
private JLabel url=new JLabel("URL"),
html=new JLabel("HTML");
private JTextField txt=new JTextField(10);
private JPanel p1=new JPanel(),
p2=new JPanel();
private JTextArea ta=new JTextArea(10,15);
private JScrollPane sb=new JScrollPane(ta);
private JButton bt1=new JButton("Save"),
bt2=new JButton("Get"),
bt3=new JButton("Clear");
private URL u;
private URLConnection uc;
GetHtml()
{
p1.setLayout(new GridLayout(2,2));
p1.add(url);
p1.add(txt);
p1.add(bt1);
p1.add(bt2);
p1.add(html);
p1.add(bt3);
p2.add(sb);
add(p1);
add(p2);
bt1.addActionListener(new save1());
bt2.addActionListener(new Gethtml());
bt3.addActionListener(new Clear());
}
class Gethtml implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
int c;
try
{
u=new URL("http://"+txt.getText());
uc=u.openConnection();
InputStream input=uc.getInputStream();
String s=null;
while (((c = input.read()) != -1))
{
ta.append(String.valueOf((char) c));
}
;
}
catch(Exception e1)
{
JOptionPane.showMessageDialog(null,new JButton("无法获取HTML文件"),
"Error Message.",JOptionPane.ERROR_MESSAGE);
}
}
}
class Clear implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
txt.setText("");
ta.setText("");
}
}
class save1 implements ActionListener
{
public void actionPerformed(ActionEvent e)
{
JFileChooser c = new JFileChooser();
int rVal = c.showSaveDialog(null);
if(rVal == JFileChooser.APPROVE_OPTION)
{
try
{
BufferedWriter out=new BufferedWriter(new FileWriter(c.getCurrentDirectory()+
"\\"+ c.getSelectedFile().getName()));
String s=ta.getText();
out.write(s);
out.close();
}
catch(Exception e1)
{
JOptionPane.showMessageDialog(null,new JButton("保存文件失败"),
"Error Message.",JOptionPane.ERROR_MESSAGE);
}
}
}
}
}