请使用正则表达式来检测这段代码中输入的ip是ip还是域名
时间: 2024-03-12 22:43:12 浏览: 14
好的,可以使用正则表达式来检测输入的字符串是IP地址还是域名。以下是一个示例函数,它使用正则表达式来检测输入的字符串:
```python
import re
def check_ip_or_domain(input_str):
'''
检测输入的字符串是IP地址还是域名
:param input_str: str, 要检测的字符串
:return: str, 如果是IP地址则返回'ip',如果是域名则返回'domain',否则返回'unknown'
'''
# 定义IP地址和域名的正则表达式
ip_pattern = r'^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$'
domain_pattern = r'^[a-zA-Z0-9][a-zA-Z0-9\-\.]*\.[a-zA-Z]{2,}$'
# 匹配正则表达式
if re.match(ip_pattern, input_str):
return 'ip'
elif re.match(domain_pattern, input_str):
return 'domain'
else:
return 'unknown'
```
这个函数接受一个字符串作为输入,并使用正则表达式来检测它是IP地址还是域名。它返回一个字符串,如果输入是IP地址则返回'ip',如果是域名则返回'domain',否则返回'unknown'。
你可以使用以下代码来调用这个函数:
```python
input_str = '192.168.1.1'
result = check_ip_or_domain(input_str)
print(result)
```
这个例子将检测输入字符串'192.168.1.1'是IP地址还是域名,并打印出检测结果。