我试图用 C++ 代码获取我的电脑中打开的端口列表。所以,我想使用 DOS 命令netstat。我已经写了这一行system("netstat -a"),但无法检索它返回的结果。
我有以下netstat -ao结果.
Proto Local Address
TCP 0.0.0.0:22
TCP 127.0.0.1:3306
TCP 165.120.144.11:139
TCP [::]:80
Run Code Online (Sandbox Code Playgroud)
在这个结果中,IP 0.0.0.0,127.0.0.1,165.120.144.11和[::]表示什么?
与此相关[为什么我得到,"无法连接到远程服务器"?问题,我在cmd.exe中运行"Netstat -na",以确保正在运行的服务器确实被视为实际运行.
我看到一个带有端口号的条目:
[::]:28642 [::]:0 LISTENING
Run Code Online (Sandbox Code Playgroud)
......但这是什么"[::]:"爵士乐?
这些Picaso-esque多米诺骨牌是否表明存在问题,或者...... ???
我经常在本地地址启动服务器[::]:8080.要终止服务器,我需要PID从中获取netstat -aon.
要终止此服务器,我做 taskkill /F /PID <found pid>
我想创建可以找到PID并在调用中应用它的Windows批处理文件 taskkill /F /PID <found pid>
我该如何创建这样的批处理文件?
谢谢!
我最近试图执行以下行;
string strCmdText;
strCmdText = "netstat -np TCP | find " + quote + number + quote + "";
System.Diagnostics.Process.Start("netstat.exe", strCmdText);
Logs.Write("LISTEN_TO(" + Registry_val1.Text + ")", strCmdText);
Run Code Online (Sandbox Code Playgroud)
现在要做的基本上是找到所有包含“ 80”的TCP端口,并将它们显示在我的定制日志系统中,该系统将在我的文件夹中创建一个日志。
这个.txt中的LISTEN_TO(80)-{date_time} .txt应该包含命令发出的文本,但是我得到的只是时间。
我如上所述调试了此命令,不幸的是,我所知道的只是CMDtext设置正确,并且我的日志记录系统正常运行,让我别无选择,一旦启动查询,NETSTAT可能会关闭?
希望我提供了足够的信息,因为这是我的第一篇文章。
问候,
有限公司
由于描述不明确,这是我尝试执行的其他相同代码,但是仍然只能得到一些时间。
const string quote = "\"";
Process p = new Process();
p.StartInfo.FileName = "cmd";
p.StartInfo.Arguments = "netstat -np TCP | find " + quote + number + quote + "";
p.StartInfo.CreateNoWindow = true;
p.StartInfo.RedirectStandardOutput = true;
p.StartInfo.UseShellExecute = false;
p.Start();
String output = p.StandardOutput.ReadToEnd();
Logs.Write("LISTEN_TO(" …Run Code Online (Sandbox Code Playgroud) 我目前使用以下代码获取有关活动网络套接字的一些信息.到目前为止,我已经确认这适用于Nexus 4(Jellybeans),Nexus 5(Jellybeans,KitKat和Lollipop)以及Sony Xperia设备(Jellybeans).
Process process = Runtime.getRuntime().exec("netstat -n");
process.getOutputStream().close();
BufferedReader reader = new BufferedReader(
new InputStreamReader(process.getInputStream()));
String line;
while ((line = reader.readline()) != null) {
// Parse line for required info
}
reader.close();
Run Code Online (Sandbox Code Playgroud)
我可以依靠上面的代码在大多数真实的Android设备上正常运行吗?
当我检查是否正在使用当前端口时,我无法从 netstat 命令中删除输出。我不需要命令的输出,而只需要错误代码。
运行netstat -anp | grep 1521 &>/dev/null结果在
(Not all processes could be identified, non-owned process info
will not be shown, you would have to be root to see it all.)
Run Code Online (Sandbox Code Playgroud)
显示为输出。我也试过:
2>/dev/null| cut -d' ' -f45-50 | sed 's/[^0-9]*//g'
Run Code Online (Sandbox Code Playgroud)
这只会在 Not all processes... 输出之后产生一堆空行,但仍然在输出中显示。
假设我接受了()与我的服务器(在Solaris上运行)的连接,并且客户端已关闭连接.服务器端的socket(在netstat类别中)在服务器端关闭()之前的状态是什么?它是绑定的吗?
我知道有一种方法可以在ubuntu上运行netstat命令,以便不断更新.有人知道吗?我想知道进程何时打开或关闭套接字:
sudo netstat -lnp |grep 12239
Run Code Online (Sandbox Code Playgroud) 有没有更好的方法来重写此代码以获得增强的性能?
如果你要获得一堆IP,系统似乎就会挂起.
TMP_PREFIX='/tmp/synd'
TMP_FILE="mktemp $TMP_PREFIX.XXXXXXXX"
BANNED_IP_MAIL=`$TMP_FILE`
BANNED_IP_LIST=`$TMP_FILE`
echo "Banned the following ip addresses on `date`" > $BANNED_IP_MAIL
echo >> $BANNED_IP_MAIL
BAD_IP_LIST=`$TMP_FILE`
netstat -ntu | grep SYN_RECV | awk '{print $5}' | cut -d: -f1 | sort | uniq -c | sort -nr > $BAD_IP_LIST
cat $BAD_IP_LIST
if [ $KILL -eq 1 ]; then
IP_BAN_NOW=0
while read line; do
CURR_LINE_CONN=$(echo $line | cut -d" " -f1)
CURR_LINE_IP=$(echo $line | cut -d" " -f2)
if [ $CURR_LINE_CONN -lt $NO_OF_CONNECTIONS ]; then
break …Run Code Online (Sandbox Code Playgroud) 我第一次尝试托管我的 Django 网站,但该端口似乎已在使用中。我之前没有托管过任何东西,我使用 netstat -ntlp 得到以下结果:
如果可能的话,我想保留标准端口...有人知道解决方案吗?我不是 sudo 用户。
这不起作用,并说没有这样的文件或目录
current_conecctions = subprocess.Popen("netstat -p udp",shell = False, stdout=subprocess.PIPE).stdout.read()
Run Code Online (Sandbox Code Playgroud)
虽然netstat -p udp在终端中完美运行.
在我运行的linux服务器中,我netstat -su可以得到udp数据包的统计信息,如下所示:
netstat -su
IcmpMsg:
InType0: 10827
InType3: 42792
InType8: 298795
InType13: 2
OutType0: 298795
OutType3: 328120
OutType8: 10827
OutType14: 2
Udp:
232862733 packets received
12074334 packets to unknown port received.
555474 packet receive errors
8650718 packets sent
UdpLite: IpExt:
InBcastPkts: 375
InOctets: 169855997552
OutOctets: 60497003017
InBcastOctets: 144080
Run Code Online (Sandbox Code Playgroud)
netstat命令从哪里获取这些统计信息?我可以清除缓冲区以使它们从零开始吗?