c++函数判断ip和port是否合法
时间: 2023-09-08 20:12:21 浏览: 239
可以使用C++的标准库函数`inet_pton`和`htons`来判断IP和端口是否合法。具体实现如下:
```c++
#include <iostream>
#include <arpa/inet.h>
bool isValidIpAddress(const std::string& ipAddress) {
struct sockaddr_in sa;
return inet_pton(AF_INET, ipAddress.c_str(), &(sa.sin_addr)) != 0;
}
bool isValidPortNumber(int portNumber) {
return (portNumber >= 0) && (portNumber <= 65535);
}
int main() {
std::string ipAddress = "127.0.0.1";
int portNumber = 8080;
if (isValidIpAddress(ipAddress) && isValidPortNumber(portNumber)) {
std::cout << "The IP address and port number are valid." << std::endl;
} else {
std::cout << "The IP address and/or port number are invalid." << std::endl;
}
return 0;
}
```
这里使用了`inet_pton`函数将IP地址转换为二进制格式,并将结果存储在`sockaddr_in`结构体中;使用`htons`函数将端口号从主机字节序转换为网络字节序。然后,使用两个辅助函数`isValidIpAddress`和`isValidPortNumber`来检查IP和端口是否合法。
阅读全文