Я пытаюсь сделать сканер портов на Android, и я немного застрял. Я хочу посмотреть, открыт ли порт на маршрутизаторе/шлюзе по умолчанию, но ничего не работает. Я пытался использовать доступный, но я чувствую, что это может быть неправильно.Сканер порта Android
import java.net.InetAddress;
import java.net.UnknownHostException;
import android.app.Activity;
import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.net.DhcpInfo;
import android.net.wifi.WifiInfo;
import android.net.wifi.WifiManager;
import android.os.Bundle;
import android.widget.TextView;
public class portscan extends Activity {
String targetHost;
public int startPort = 1; //(for uses in later programming)
public int endPort = 1000;
private Intent scanIntent;
InetAddress targetAddress;
String targetHostName;
WifiManager networkd;
DhcpInfo details;
public String gateway;
TextView GW;
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
try {
setContentView(R.layout.port);
GW = (TextView)findViewById(R.id.gateway);
networkd = (WifiManager) getSystemService(Context.WIFI_SERVICE);
details = networkd.getDhcpInfo();
String test = intToIp(details.gateway);
gateway = "Default Gateway: "+String.valueOf(details.gateway);
boolean isAvailable = false;
isAvailable = InetAddress.getByName(test).isReachable(80); //trying to see if port open
if (isAvailable == true) {
GW.setText("port 21 is up");
}
} catch (Exception e) {
}
}
public String intToIp(int i) { //this converts the DHCP information (default gateway) into a readable network address
return (i & 0xFF)+ "." +
((i >> 8) & 0xFF) + "." +
((i >> 16) & 0xFF)+ "." +
((i >> 24) & 0xFF);
}
Глядя на 'isReachbable (80)', я считаю необходимым указать, что аргумент представляет собой значение времени ожидания, а не номер порта_. Но неважно, просто не используйте его. –