首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何将函数中使用的IP地址作为命令行参数传递给参数解析器?

如何将函数中使用的IP地址作为命令行参数传递给参数解析器?
EN

Stack Overflow用户
提问于 2021-09-30 06:39:05
回答 2查看 109关注 0票数 0

我有这个函数,它可以pinging服务器以获取其响应。我希望能够将函数中使用的IP地址作为命令行参数提供给参数解析器,而不是硬编码或将其作为用户输入。目前该函数如下所示:

代码语言:javascript
运行
复制
def get_sipresponse():
        var = input("Enter Opensips IP: ")
        p = sys.path.append("/home/asad.javed/")
        response = sip.ping(var)
        response.get('Status')
        print(response)
        return p, response

我使用参数解析器的main函数如下所示:

代码语言:javascript
运行
复制
def main():
        parser = ap.ArgumentParser()
        parser.add_argument('-s', '--start', help='start script', action='store_true')
        parser.add_argument('--getOSresponse', help='Opensips response', action='store_true')

        args = parser.parse_args()

        elif args.start
                for k,v in reversed_dictionary.items():
                        print(v, "=", k);time.sleep(5);
                        proc = subprocess.call([k], shell=True);time.sleep(5);
                        if proc != 0:
                                if proc < 0:
                                        print("Killed by signal!", -proc)
                                else:
                                        print("\nReturn code: \n", proc)
                        else:
                                print("\nSuccess\n");get_sipresponse()

        elif args.getOSresponse:
                get_sipresponse()
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-09-30 07:18:37

在主目录中,在arg解析器中的其他参数设置下,添加以下行:

代码语言:javascript
运行
复制
parser.add_argument('--ip')

然后将get_sipresponse()更改为:

代码语言:javascript
运行
复制
def get_sipresponse(ip):
        p = sys.path.append("/home/asad.javed/")
        response = sip.ping(ip)
        response.get('Status')
        print(response)
        return p, response

最后,在main中,您可以像这样调用get_sipresponse

代码语言:javascript
运行
复制
get_sipresponse(args.ip)
票数 1
EN

Stack Overflow用户

发布于 2021-09-30 07:00:44

如果你从你的get_sipresponse()返回一个"dict“

代码语言:javascript
运行
复制
def get_sipresponse():
        var = input("Enter Opensips IP: ")
        p = sys.path.append("/home/asad.javed/")
        response = sip.ping(var)
        response.get('Status')
        print(response)
        return {'ip': var , 
                'path': p, 
                'resp': response}

然后,您可以在main()函数中使用它。

代码语言:javascript
运行
复制
def main():
  target_ip = get_sipresponse()['ip']
  ......
  .....
  ...
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69387294

复制
相关文章

相似问题

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