从sockaddr
获取IP地址的方法取决于您使用的编程语言和库。以下是一些常见编程语言的示例。
C/C++
#include<stdio.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
int main() {
struct sockaddr_in sockaddr;
sockaddr.sin_family = AF_INET;
sockaddr.sin_addr.s_addr = inet_addr("192.168.1.1");
char ip[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &sockaddr.sin_addr, ip, INET_ADDRSTRLEN);
printf("IP address: %s\n", ip);
return 0;
}
Python
import socket
sockaddr = socket.inet_aton("192.168.1.1")
ip_address = socket.inet_ntoa(sockaddr)
print("IP address:", ip_address)
Java
import java.net.InetAddress;
import java.net.UnknownHostException;
public class Main {
public static void main(String[] args) {
try {
InetAddress address = InetAddress.getByName("192.168.1.1");
String ipAddress = address.getHostAddress();
System.out.println("IP address: " + ipAddress);
} catch (UnknownHostException e) {
e.printStackTrace();
}
}
}
这些示例将从sockaddr
结构中提取IP地址。请注意,这些示例仅适用于IPv4地址。对于IPv6地址,您需要使用不同的方法和数据结构。
领取专属 10元无门槛券
手把手带您无忧上云