---
name: "IPV6_ADDRFORM"
section: "2const"
platform: "linux"
package: "man-pages"
version: "6.19-1"
release: "Arch Linux 2026-11-01"
platforms: ["linux"]
url: "https://new.carta.tech/IPV6_ADDRFORM"
---

# IPV6\_ADDRFORM(2const)

turn an AF\_INET6 socket into a socket of a different address family

## NAME

IPV6\_ADDRFORM - turn an AF\_INET6 socket into a socket of a different address family

## LIBRARY

Standard C library (*libc*, *-lc*)

## SYNOPSIS

```
#include <netinet/in.h>  /* Definition of IP* constants */
#include <sys/socket.h>
```

**int setsockopt(int** *sockfd***, IPPROTO\_IPV6, IPV6\_ADDRFORM,**                **&(const int){AF\_INET}, sizeof(int));**

## DESCRIPTION

Turn an **AF\_INET6** socket into a socket of a different address family.

Only **AF\_INET** is currently supported for that.

It is allowed only for IPv6 sockets that are connected and bound to a v4-mapped-on-v6 address.

This is useful to pass v4-mapped sockets as file descriptors to programs that don't know how to deal with the IPv6 API.

## ERRORS

See [**setsockopt**(2)](/setsockopt/2.md). See [**ipv6**(7)](/ipv6/7.md).

## SEE ALSO

[**IPPROTO\_IPV6**(2const)](/IPPROTO_IPV6/2const.md), [**setsockopt**(2)](/setsockopt/2.md), [**ipv6**(7)](/ipv6/7.md)
