豌豆Ai站群搜索引擎系统 V.25.10.25 网址:www.wd.chat

🗣 Wd提问: 安卓获取外网ip

🤖 Ai回答:
在安卓设备上获取外网IP地址,你可以使用以下几种方法:

方法一:通过HTTP请求
可以通过发送HTTP请求到外部服务来获取公网IP地址。例如,可以访问`https://api.ipify.org`来获取当前的公网IP。

示例代码:
java
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

new AsyncTask<Void, Void, String() {
@Override
protected String doInBackground(Void..、voids) {
try {
URL url = new URL(https://api.ipify.org);
HttpURLConnection connection = (HttpURLConnection) url.openConnection();
connection.setRequestMethod(GET);
connection.setConnectTimeout(5000); // 设置超时时间
connection.setReadTimeout(5000);
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
return reader.readLine();
} catch (IOException e) {
e.printStackTrace();
return null;
}
}

@Override
protected void onPostExecute(String ip) {
if (ip != null) {
Toast.makeText(MainActivity.this, Your public IP is: + ip, Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, Failed to get public IP, Toast.LENGTH_SHORT).show();
}
}
}.execute();
}
}

方法二:通过网络库(如Retrofit)
如果你已经在项目中使用了Retrofit等网络库,可以通过它来简化HTTP请求。

示例代码:
首先,添加依赖项:
gradle
dependencies {
implementation 'com.squareup.retrofit2:retrofit:2.9.0'
implementation 'com.squareup.retrofit2:converter-scalars:2.9.0'
}

然后创建接口:
java
public interface IpService {
@GET(ip)
Call<String getPublicIp();
}

最后,在Activity中调用:
java
public class MainActivity extends AppCompatActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Retrofit retrofit = new Retrofit.Builder()
.baseUrl(https://api.ipify.org/)
.addConverterFactory(ScalarsConverterFactory.create())
.build();

IpService service = retrofit.create(IpService.class);
service.getPublicIp().enqueue(new Callback<String() {
@Override
public void onResponse(Call<String call, Response<String response) {
if (response.isSuccessful()) {
Toast.makeText(MainActivity.this, Your public IP is: + response.body(), Toast.LENGTH_LONG).show();
} else {
Toast.makeText(MainActivity.this, Failed to get public IP, Toast.LENGTH_SHORT).show();
}
}

@Override
public void onFailure(Call<String call, Throwable t) {
Toast.makeText(MainActivity.this, Failed to get public IP, Toast.LENGTH_SHORT).show();
}
});
}
}

注意事项
1、权限:确保你的应用有互联网访问权限。
xml
<uses-permission android:name=android.permission.INTERNET /


2、安全性:不要在主线程中执行网络操作,使用`AsyncTask`、`Thread`或`Executor`等异步机制。

3、错误处理:确保处理可能出现的各种异常情况,如网络连接失败、服务器返回错误等。

通过上述方法,你可以在安卓设备上轻松地获取外网IP地址。

Ai作答

📣 商家广告


八字

算命

中国域名

月饼

姓名


0

IP地址: 6.129.118.207

搜索次数: 71

提问时间: 2025-12-20 08:47:30

🛒 域名购买

❓️ 热门提问

🌐 域名评估

最新挖掘

🖌 热门作画

🤝 关于我们

🗨 加入群聊

🔗 友情链接

🧰 站长工具
📢

温馨提示

本站所有 问答 均由Ai自动分析整理,内容仅供参考,若有误差请用“联系”里面信息通知我们人工修改或删除。

👉

技术支持

本站由 🟢 豌豆Ai 提供技术支持,使用的最新版: 豌豆Ai站群搜索引擎系统 V.25.10.25 搭建本站。

上一篇 45951 45952 45953 下一篇