0
私はアンドロイドポートスキャナを開発していますが、動作していないようです。 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 –