> For the complete documentation index, see [llms.txt](https://docs.console.zenlayer.com/api-reference/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.console.zenlayer.com/api-reference/cn/zec/vnic/replacenetworkinterfaceprimaryipv4.md).

# ReplaceNetworkInterfacePrimaryIpv4

## 1. 接口描述

本接口(ReplaceNetworkInterfacePrimaryIpv4)用于变更网卡当前的主内网IPv4地址。

{% hint style="info" %}
**注意事项**

* 仅存在主内网IPv4的网卡（IPv4或IPv4\_IPv6堆栈类型）支持此操作，纯IPv6网卡不支持。
* 网卡状态需为`AVAILABLE`或`USED`。
* 绑定在该网卡上的弹性公网IP会自动指向新的主内网IP，无需处理。
* NAT网关的DNAT/SNAT规则、负载均衡的后端/转发规则、安全组/白名单中对旧IP的引用、应用内配置（如数据库连接、服务发现）引用了旧IP的，均不会自动更新，需自行修改。
  {% endhint %}

## 2. 请求参数

以下请求参数列表仅列出了接口中需要的请求参数

| 参数名称             | 必选 | 类型      | 描述                                                                                                                                                                             |
| ---------------- | -- | ------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| nicId            | 是  | String  | <p>需要变更的网卡ID。</p><p>可通过调用 <a href="/api-reference/cn/zec/vnic/describenetworkinterfaces.md">DescribeNetworkInterfaces</a> 获取。</p>                                              |
| primaryIpAddress | 否  | String  | <p>变更的目标内网IPv4地址。</p><p>该地址必须属于子网的CIDR内，且未被使用。</p><p>如果未指定，将自动分配子网内当前可用的最小IP地址。</p>                                                                                            |
| rebootInstance   | 否  | Boolean | <p>是否在变更成功后自动重启已绑定的运行中实例，使新的主内网IPv4地址在实例内立即生效。</p><p>传false时不会自动重启，需自行重启实例后新IP才会生效。</p><p>如果网卡未绑定实例、绑定的实例未处于运行中、或本次未产生实际变更（如指定了与当前相同的IP），则无论本参数取值如何都不会触发重启。</p><p>默认值：true</p> |

## 3. 响应结果

| 参数名称             | 类型     | 描述                                                       |
| ---------------- | ------ | -------------------------------------------------------- |
| requestId        | String | <p>唯一请求 ID。</p><p>每次请求都会返回。定位问题时需要提供该次请求的 requestId。</p> |
| nicId            | String | 网卡ID。                                                    |
| primaryIpAddress | String | 变更后生效的主内网IPv4地址。                                         |

## 4. 代码示例

{% tabs %}
{% tab title="示例" %}
**1. 指定目标IP变更网卡主内网IPv4地址。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: ReplaceNetworkInterfacePrimaryIpv4
<Common Request Params>

Request：
{
  "nicId": "<nicId>",
  "primaryIpAddress": "10.130.0.5"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "nicId": "<nicId>",
    "primaryIpAddress": "10.130.0.5"
  }
}
```

**2. 不指定目标IP，由系统自动分配子网内可用的最小IP地址。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: ReplaceNetworkInterfacePrimaryIpv4
<Common Request Params>

Request：
{
  "nicId": "<nicId>"
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "nicId": "<nicId>",
    "primaryIpAddress": "10.130.0.2"
  }
}
```

**3. 指定目标IP，且不希望自动重启已绑定的实例（后续需自行重启实例，新IP才会生效）。**

```json
POST /api/v2/zec HTTP/1.1
Host: console.zenlayer.com
Content-Type: application/json
X-ZC-Action: ReplaceNetworkInterfacePrimaryIpv4
<Common Request Params>

Request：
{
  "nicId": "<nicId>",
  "primaryIpAddress": "10.130.0.5",
  "rebootInstance": false
}

Response：
{
  "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
  "response": {
    "requestId": "T05992D0C-7E8B-4047-B0C0-780F2CD549D3",
    "nicId": "<nicId>",
    "primaryIpAddress": "10.130.0.5"
  }
}
```

{% endtab %}
{% endtabs %}

## 5. 开发者工具

Zenlayer Cloud API 2.0 提供了配套的[开发工具集（SDK）](/api-reference/cn/api-introduction/toolkit.md)，未来会陆续支持更多开发语言，方便快速接入和使用Zenlayer的产品和服务。

## 6. 错误码

下面包含业务逻辑中遇到的错误码，其他错误码见[公共错误码](/api-reference/cn/api-introduction/instruction/commonerrorcode.md)

| HTTP状态码 | 错误码                                                 | 说明                 |
| ------- | --------------------------------------------------- | ------------------ |
| 404     | INVALID\_NIC\_NOT\_FOUND                            | 网卡不存在。             |
| 400     | INVALID\_NIC\_STATUS                                | 当前网卡状态无法进行操作。      |
| 400     | OPERATION\_DENIED\_SUBNET\_TYPE\_NOT\_SUPPORT\_IPV4 | 子网堆栈类型不包括IPv4。     |
| 400     | INVALID\_IP\_OUT\_OF\_RANGE                         | IP地址不合法，不属于CIDR范围。 |
| 400     | INVALID\_IP\_BROADCAST\_ADDRESS                     | IP为广播地址不可用。        |
| 400     | INVALID\_IP\_NETWORK\_ADDRESS                       | IP为网络地址不可用。        |
| 400     | INVALID\_IP\_FIRST\_ADDRESS                         | IP为网关地址不可用。        |
| 409     | INVALID\_SUBNET\_PRIVATE\_IPV4\_IN\_USED            | 内定的内网IP已经被使用。      |
| 400     | OPERATION\_DENIED\_SUBNET\_IP\_INSUFFICIENT         | 子网空闲IP不足。          |
| 500     | CHANGE\_NIC\_PRIMARY\_IP\_FAILED                    | 变更网卡主内网IP失败。       |
