You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

硕士项目:R语言实现IP地址转国家编码及地图可视化求助

解决方案:R4.3.1下IP地址转国家编码及地图可视化

一、IP地址转国家编码(解决包兼容与函数冲突问题)

问题根源

你调用的maxmind()函数来自其他旧包(如rgeolocate),该包与R4.3.1不兼容,同时和已安装的ip2location包存在命名冲突,导致报错。建议直接使用ip2location包自带的函数完成IP解析,无需依赖其他旧包。

修正步骤

  1. 确保ip2location包正确安装:
install.packages("ip2location")
library(ip2location)
  1. 自行到MaxMind官网注册获取免费的GeoLite2-Country.mmdb数据库文件,保存到指定路径(比如你的文档目录)
  2. 修改IP解析代码:
# 设置工作目录
setwd("C:/Users/Steph/Documents")

# 读取IP数据
ipdf <- read.csv("ip_address.csv", stringsAsFactors = FALSE)

# 指定mmdb文件的绝对路径
ipmmdb <- "C:/Users/Steph/Documents/GeoLite2-Country.mmdb"

# 使用ip2location自带函数解析IP,获取国家名称和ISO编码
results <- ip2location(ipdf$IP.Address, ipmmdb, fields = c("country_name", "country_code"))

# 合并结果并导出
export.results <- data.frame(
  `IP Address` = ipdf$IP.Address,
  `Country` = results$country_name,
  `Country Code` = results$country_code,
  stringsAsFactors = FALSE
)

write.csv(export.results, "IP_to_Location.csv", row.names = FALSE)

二、地图可视化实现

使用ggplot2结合rworldmap包完成可视化,完全兼容R4.3.1:

  1. 安装所需可视化包:
install.packages(c("ggplot2", "rworldmap", "dplyr"))
library(ggplot2)
library(rworldmap)
library(dplyr)
  1. 处理数据并绘制地图:
# 读取解析后的结果
location_data <- read.csv("IP_to_Location.csv", stringsAsFactors = FALSE)

# 统计每个国家的IP数量
country_counts <- location_data %>%
  filter(!is.na(Country)) %>%
  count(Country, name = "IP_Count")

# 将统计数据匹配到世界地图数据
map_data <- joinCountryData2Map(
  country_counts,
  joinCode = "NAME",
  nameJoinColumn = "Country"
)

# 绘制静态地图
ggplot(map_data) +
  geom_polygon(aes(x = long, y = lat, group = group, fill = IP_Count)) +
  scale_fill_viridis_c(option = "plasma", name = "IP数量") +
  theme_minimal() +
  labs(title = "IP地址分布地图", x = "", y = "") +
  theme(
    axis.text = element_blank(),
    axis.ticks = element_blank(),
    panel.grid = element_blank()
  )

额外注意事项

  • 若GeoLite2-Country.mmdb路径错误,会导致解析失败,务必确认文件存在且路径正确。
  • 部分私有IP或未收录IP会返回NA,可通过filter(!is.na(Country))过滤后再可视化。

内容的提问来源于stack exchange,提问作者Steph T

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 06:47:25