内部ip和外部ip怎么编程

时间:2025-01-24 16:37:01 游戏攻略

获取内部IP和外部IP的方法取决于你使用的编程语言和环境。以下是几种常见编程语言中获取内部IP和外部IP的方法:

C

在C中,可以使用`System.Net`命名空间中的类来获取内部IP和外部IP。

获取内部IP

```csharp

using System;

using System.Net;

using System.Net.NetworkInformation;

public static string GetPrivateIpAddress()

{

foreach (var networkInterface in NetworkInterface.GetAllNetworkInterfaces())

{

if (networkInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 ||

networkInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet)

{

foreach (var ip in networkInterface.GetIPProperties().UnicastAddresses)

{

if (ip.Address.AddressFamily == System.Net.Sockets.AddressFamily.InterNetwork)

{

return ip.Address.ToString();

}

}

}

}

return "No internal IP found";

}

```

获取外部IP

```csharp

using System;

using System.Net;

using System.Text;

using System.Threading.Tasks;

public static async Task GetPublicIpAddressAsync()

{

using (var client = new HttpClient())

{

var response = await client.GetAsync("https://api.ipify.org?format=json");

response.EnsureSuccessStatusCode();

var responseBody = await response.Content.ReadAsStringAsync();

return Newtonsoft.Json.JsonConvert.DeserializeObject(responseBody)["ip"];

}

}

```

Python

在Python中,可以使用`requests`库来获取内部IP和外部IP。

获取内部IP

```python

import socket

def get_internal_ip():

hostname = socket.gethostname()

local_ip = socket.gethostbyname(hostname)

return local_ip

```

获取外部IP

```python

import requests

def get_external_ip():

response = requests.get('https://api.ipify.org')

return response.text

```

JavaScript (Node.js)

在Node.js中,可以使用`os`模块和`request`库(或`axios`)来获取内部IP和外部IP。

获取内部IP

```javascript

const os = require('os');

function getInternalIP() {

const networkInterfaces = os.networkInterfaces();

for (const name in networkInterfaces) {

const iface = networkInterfaces[name];

for (const addressInfo of iface) {

if (addressInfo.family === 'IPv4' && !addressInfo.internal) {

return addressInfo.address;

}

}

}

return 'No internal IP found';

}

```

获取外部IP

```javascript

const axios = require('axios');

async function getExternalIP() {

const response = await axios.get('https://api.ipify.org');

return response.data;

}

```

总结

以上代码示例展示了如何在不同的编程语言中获取内部IP和外部IP。选择适合你项目需求的语言和库,并根据实际情况进行调整。