0
我正在開發一個android的端口掃描儀,但它似乎並沒有工作。這是PortScan類的代碼。Android的portscan無法正常工作
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Socket;
import java.net.UnknownHostException;
import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.widget.TextView;
public class PortScan extends Activity
{
String targetHost;
/* Starting port for scan */
public int startPort = 1;
/* Ending port for scan */
public int endPort = 100;
/* Adapter for ListView */
//private PortScanAdapter scanAdapter;
/* Intent which invoked this class */
private Intent scanIntent;
/* Address of the host to scan */
InetAddress targetAddress;
/* Hostname of the target */
String targetHostName;
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
scanIntent = getIntent();
prepareScan();
setContentView(R.layout.port_scan_result);
startScan();
}
private void prepareScan()
{
targetHost = scanIntent.getStringExtra("targetAddress");
/* Get the IP Address of the target */
try
{
targetAddress = InetAddress.getByName(targetHost);
}
catch(UnknownHostException e)
{
e.printStackTrace();
}
/* Get the hostname of the target */
try
{
targetHostName = targetAddress.getHostName();
}
catch(Exception e)
{
targetHostName = targetHost;
}
/*TextView hostName = (TextView)findViewById(R.id.host);
hostName.setText(targetHostName); */
}
private void startScan()
{
/* Socket to connect to the remote machine */
Socket portSocket;
/* Textview which displays the scanresult */
TextView scanText = (TextView)findViewById(R.id.portscanresult);
scanText.setText("Scanning host "+ targetHost + "\n");
for (int i = startPort; i == endPort; i++)
{
try
{
portSocket = new Socket();
portSocket.connect(new InetSocketAddress(targetAddress, i), 1000);
scanText.append("Target is listening on port "+ i + ": Port Open\n");
portSocket.close();
}
catch(Exception exception)
{
scanText.append("Target is not listening on port "+ i + ": Port Closed\n");
}
}
}
}
我在模擬器(Android 2.3.3)上測試此代碼。我不知道這個問題是否與套接字連接或TextView有關。當我運行該程序時,我得到的唯一輸出是for
循環開始之前的字符串,即"Scanning host "+ targetHost + "\n"
,然後沒有任何反應。
任何幫助將不勝感激。
問候
謝謝!我現在真的覺得自己像個白癡:P – 2012-04-20 09:09:40