首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >PHP查询超时

PHP查询超时
EN

Stack Overflow用户
提问于 2020-05-18 22:34:18
回答 1查看 96关注 0票数 0

我正在扫描一个子网来收集网络上资产的WMI信息。但是,如果机器被卡在POST中或有一些未知的问题,它将冻结脚本,永远不会转移到下一台机器。问题是,是否有办法在PHP COM WbemScripting.SWbemLocator?上设置超时。

代码语言:javascript
运行
复制
    $host = 10.1.1.5; //Host is online, but may be hung trying to shutdown

    //Check if host is online
    if(@$fp = fsockopen($host,135,$errCode,$errStr,0.1))
    {
        //Create new connection
        $WbemLocator = new COM ("WbemScripting.SWbemLocator");

        //Connect to remote workstation
        $WbemServices = $WbemLocator->ConnectServer($host, 'root\\cimv2',$user,$password);  
        $WbemServices->Security_->ImpersonationLevel = 3;

        //Basic WMI query
        $system = $WbemServices->execQuery("Select * from Win32_ComputerSystem");   

        foreach($pcsystem AS $n){

            $hostname = $n->Name; //Hostname

        }

        //Process all data ->Insert into DB
    }
//Move on to next machine. In this case, the script will never move on
EN

回答 1

Stack Overflow用户

发布于 2020-05-18 22:50:28

简单地说,不是,因为它是一个COM对象,而不是一个PHP对象,并且没有直接控制它的工具。

更长、更推测的答案是,您可以尝试通过注册表(特别是TCP参数 )来调整TcpInitialRtt,尽管除非您在一个非常可靠和不拥挤的网络上运行,否则似乎没有太多的空间来改变这种行为。你可能会弄坏机器上运行的其他东西。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61880143

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档