好吧,让我们精确一点。多年来,我一直在问自己一个问题:是否有可能在计算机上侦听DNS请求(在我的情况下是windows计算机)并要求程序在检测到特殊DNS时执行shell命令?用Java持续监听DNS请求并执行cmd命令
我一直在玩这个命令:
IPCONFIG/displaydns |找到“my.dns.com”
和预期的一样,我可以在我的DNS缓存中找到“my.dns.com”。
但我不能问到CMD:
嘿,听着在连续的所有请求,当你发现 “my.dns.com”请执行“的音乐。可执行程序”。
所以我想到一个程序(在Java中),这样做是为了我。为什么是java?因为我不能使用唯一的编程语言,所以我开始使用它,所以我更容易理解它。但是如果我正在寻找的东西在Java中是不可能的,请让我知道!
但是(再次)我不知道如何管理DNS请求,也没有要求Java程序连续运行。对于这里的那一刻就是一切,我可以添加到我的程序:
if ("my.dns.com" is detected) {
try {
String command = "cmd /c start music.exe";
Process child = Runtime.getRuntime().exec(command);
OutputStream out = child.getOutputStream();
} catch (IOException e) {
}
也许在连续运行:
boolean running = true;
while(running)
{
//main loop...
}
我知道,那是极少数,但我甚至不知道在哪里看看回答我的问题。
如果你能够理解我(是的,你在屏幕后面吃着多力多滋),你能至少帮我找到我的路吗?
精确的,如果你要我编辑:)
所以,我一定尝试这个剧本,并遗憾地说,但,它不工作:(脚本执行很好,但什么都没有发生,当我旅行到特定的DNS。至少,您的帮助感谢:) @lit –
请尝试运行'Get-DnsClientCache | ForEach-Object {$ _。Name}'在PowerShell提示符下单独运行。您在输出中查找的域名是?另外,您必须在浏览到相关域时保持此脚本运行。 – lit
所以我尝试了一下,它的确显示了我很少的DNS,但并不是我想要的那个:(但是,当我把一个DNS放在列表中时,它就起作用了。顺便说一句,谢谢@lit) –