Android端口无法正常工作(Android portscan not working)

编程入门 行业动态 更新时间:2024-10-27 00:24:05
Android端口无法正常工作(Android portscan not working) java

我正在开发一个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" ,然后没有任何反应。

任何帮助将不胜感激。

问候

I am developing an android port scanner but it doesn't seem to be working. Here's the code for the PortScan class.

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"); } } } }

I am testing this code on an emulator (Android 2.3.3). I don't know whether the issue is with socket connections or TextView. When I run the program, the only output I get is the string before the for loop starts i.e "Scanning host "+ targetHost + "\n" and then nothing happens.

Any help will be greatly appreciated.

Regards

最满意答案

嗯...这永远不会奏效......

for (int i = startPort; i == endPort; i++)

第二个是条件, if i==endport和i等于startPort因为你在开始时这么说... int i=startPort

必须是这样的:

for (int i = startPort; i <= endPort; i++)

well ... this is never going to work...

for (int i = startPort; i == endPort; i++)

The second is the condition if i==endport and i equals to startPort because you said so in the beginning... int i=startPort

It has to be like this:

for (int i = startPort; i <= endPort; i++)

更多推荐

本文发布于:2023-08-07 03:15:00,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1461183.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:无法正常   端口   工作   Android   portscan

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!