`

仅支持IPV4的IP转换(字符串,网络字节序)

阅读更多

后面我会写个文章,给出一个IPV4和IPV6通用的转换函数(其实就是从UNIX网络编程第1卷上摘下来的)。

 

// 演示inet_aton和inet_ntoa函数的用法

#include <stdio.h>
#include <arpa/inet.h>
int main(int argc, char **argv)
{
        struct in_addr inaddr;
        char *ip_string = "192.168.1.1";
        inet_aton(ip_string, &inaddr);
        char *bak_ip = inet_ntoa(inaddr);
        printf("ip:%s bak ip:%s\n", ip_string, bak_ip);

        return 0;
}

 

分享到:
评论

相关推荐

    ipv4和ipv6字符串转换成数字

    根据给定的信息,本文将详细解释如何将IPv4与IPv6地址从字符串形式转换为`BigInteger`数字形式,以及反向操作的过程。 ### IPv4与IPv6简介 #### IPv4 IPv4(Internet Protocol Version 4)是互联网协议的第四版,...

    络字节序、地址转换源代码

    2. `inet_ntoa()`:将二进制IP地址转换为ASCII字符串形式。 3. `inet_pton()` 和 `inet_ntop()`:这两个函数在IPv6时代更为推荐,分别用于将IPv6地址从文本表示转换为二进制,以及从二进制转换为文本表示。 在实际...

    判断字符串是否为IP地址

    `inet_pton`函数可以从字符串中解析出IPv4或IPv6地址,并将其转换为网络字节序表示的二进制形式。通过此函数可以轻松地判断一个字符串是否为有效的IPv4地址。 ```c #include #include #include #include #include ...

    IP地址转换

    在处理网络传输的IP地址时,通常需要将其转换为网络字节序(Big-Endian),这可以通过`htonl()`函数实现。网络字节序确保了不同字节序的系统间数据交换的兼容性。 3. **结构体`struct in_addr`**:这是C语言中用来...

    用4个字节存放IP地址,并且读出来的源码

    这里分配12字节的原因在于,作者可能默认了Windows环境下的默认字符集是多字节字符集(MBSC),在该环境下,每个字符占一个字节,因此12个字节足以存储最长的IP地址字符串及终止符。 ##### IP地址转换 - 使用`...

    计算机课程设计 (1)输入的字符串中的字符必须为’0’~’9’的数字或’.’,不能有其他字符,否则报错并且//终止运行 (2

    这个函数需要将整数拆分为四个部分,每部分代表IP地址的一个八位字节,然后将这些数字转换为字符串,并用点号连接起来。这个过程涉及位运算和字符串构造,以形成合法的IP地址格式。 整个程序的流程是从用户获取输入...

    Ip地址转换器

    1. 分割IP地址:将输入的IP字符串按"."分割,得到四个十进制数。 2. 转换为二进制:将每个十进制数转换为8位的二进制数,不足8位的前面补0。 3. 拼接二进制:将四个二进制数拼接成一个32位的二进制数。 4. 转换为...

    linux网络编程[收集].pdf

    总的来说,Linux网络编程涉及的知识点广泛,包括网络字节序的转换、socket地址结构体、地址类型识别、以及IP地址的字符串和二进制表示之间的转换。熟练掌握这些基本概念和函数使用是编写高效、可移植的网络程序的...

    c#使用一个socket同时发送字符串和文件

    发送字符串通常比较简单,我们可以直接将字符串转换为字节数组,然后调用Socket的`Send`方法。例如: ```csharp string message = "Hello, Server!"; byte[] data = Encoding.ASCII.GetBytes(message); socket.Send...

    网络结构体资料.pdf

    `inet_ntoa`则是反向操作,将32位的网络字节序IP地址转换回点分十进制的字符串形式。 随着IPv6的普及,出现了两个新的函数`inet_pton`和`inet_ntop`,它们分别用于将地址字符串转换为网络地址(不管IPv4还是IPv6)...

    Scoket 资料Scoket 资料

    - `int inet_aton(const char *cp, struct in_addr *inp)`:将IPv4地址字符串转换为32位网络字节序形式。 - `int inet_pton(int af, const char *cp, void *outp)`:通用函数,支持IPv4和IPv6地址转换。 - `in_addr_...

    Unix网络编程API.doc

    在网络编程中,IP地址通常以字符串形式(如点分十进制)或二进制形式(如网络字节序的32位或128位值)存在。以下函数用于在这两种形式之间转换: - `inet_aton`:将点分十进制的IP地址字符串转换为`struct in_...

    IP地址转换.rar

    5. **IP地址的网络类和子网划分**:根据前三个八位字节,IPv4地址可以分为A、B、C三类。同时,通过子网划分可以进一步细化网络,提高地址利用率。 易语言是一种以中文作为程序代码的编程语言,其IP地址转换源码可能...

    linux下TCP/IP编程常用函数

    - `inet_aton()`:此函数接受一个IPv4地址字符串,并将其转换为32位网络字节顺序的IP地址。它需要两个参数,一个是要转换的字符串,另一个是用于存储转换结果的`struct in_addr`结构体。 2. **地址类型转换函数**...

    套节字函数1

    3. `inet_addr(const char* cp)` 函数接受一个点分十进制的IP地址字符串,并将其转换为32位无符号长整型的网络字节序IP地址。 4. `inet_ntoa(struct in_addr in)` 函数用于将32位的网络字节序IP地址转换回点分十...

    ip2long和long2ip的学习程序

    `ip2long`函数接收一个字符串形式的IPv4地址作为参数,然后将其转换为32位无符号整型数值。例如,对于IPv4地址 "192.168.1.1",`ip2long`会返回对应的整数值,即 3232235777。这个数字是由IPv4的四个八位字节按照从...

    inet各种函数.docx

    `inet_ntoa`函数则是一个反向的转换函数,将32位网络字节序的IPv4地址转换为点分十进制字符串。函数原型如下: ```c char* inet_ntoa(struct in_addr in); ``` - `in`参数是一个`struct in_addr`结构体,包含IPv4...

    java判断是内网ip还是公网ip

    可以使用`InetAddress`类的`getByAddress()`方法,将IP字符串转换为字节数组,然后将每个字节转换为十进制数。 ```java String[] ipParts = ipAddress.split("\\."); int ipInt = ((Integer.parseInt(ipParts[0]) )...

Global site tag (gtag.js) - Google Analytics