如何获取IP地址

runall 2009-03-07 04:18:35
有一台机器配置了多个网卡,我只知道其中一个IP地址,想通过这个IP地址获取其他的IP,代码怎么写?注意程序不是运行在那台配了多个网卡的机器,而是另外一台机器。
...全文
286 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
franksally 2009-05-06
  • 打赏
  • 举报
回复
还不结贴散分!
moyu0623 2009-05-01
  • 打赏
  • 举报
回复
要不要这么牛叉呢!呵呵
大川101 2009-04-25
  • 打赏
  • 举报
回复
学习
shiweifu 2009-04-24
  • 打赏
  • 举报
回复
学习
jackwade007 2009-04-24
  • 打赏
  • 举报
回复
了解了啊 ii
ddeng 2009-04-23
  • 打赏
  • 举报
回复
我把压箱底的都共享给你们啦!
//---------------------------------------------------------------------------
// 获取本机IP地址
// 一机可能配多个IP
// IPIndex>=0时为网卡序号,返回1表示获取成功,0表示失败,成功时IP地址保存在IP参数内
// IPIndex<0时仅用来返回本机所配置的IP数
int __fastcall GetLocalIP(char *IP, int IPIndex) {
WSADATA wsaData;
int err = WSAStartup(MAKEWORD( 2, 0 ), &wsaData);
if(err!=0) {
return 0;
}
char szhn[256];
int nStatus = gethostname(szhn, sizeof(szhn));
if(nStatus==SOCKET_ERROR) {
return 0;
}
HOSTENT *host = gethostbyname(szhn);
int nCount = IPIndex>=0 ? 1 : 0;
if (host!=NULL) {
for(int i=0; ; i++) {
if(IPIndex<0) {
nCount++;
}
else {
if(IPIndex==i) {
strcpy(IP, inet_ntoa(*(IN_ADDR *)host->h_addr_list[i]));
break;
}
}
if(host->h_addr_list[i]+host->h_length>=host->h_name) {
break;
}
}
}
WSACleanup();
return nCount;
}
ddeng 2009-04-23
  • 打赏
  • 举报
回复
我把压箱底的都共享给你们啦!
//---------------------------------------------------------------------------
// 获取本机IP地址
// 一机可能配多个IP
// IPIndex>=0时为网卡序号,返回1表示获取成功,0表示失败,成功时IP地址保存在IP参数内
// IPIndex<0时仅用来返回本机所配置的IP数
int __fastcall GetLocalIP(char *IP, int IPIndex) {
WSADATA wsaData;
int err = WSAStartup(MAKEWORD( 2, 0 ), &wsaData);
if(err!=0) {
return 0;
}
char szhn[256];
int nStatus = gethostname(szhn, sizeof(szhn));
if(nStatus==SOCKET_ERROR) {
return 0;
}
HOSTENT *host = gethostbyname(szhn);
int nCount = IPIndex>=0 ? 1 : 0;
if (host!=NULL) {
for(int i=0; ; i++) {
if(IPIndex<0) {
nCount++;
}
else {
if(IPIndex==i) {
strcpy(IP, inet_ntoa(*(IN_ADDR *)host->h_addr_list[i]));
break;
}
}
if(host->h_addr_list[i]+host->h_length>=host->h_name) {
break;
}
}
}
WSACleanup();
return nCount;
}
pp616 2009-04-23
  • 打赏
  • 举报
回复
可以在对方机器上跑程序那就很简单。在不在同一个网段也没关系
关键在你可以和暴露在外面的那一个IP通讯。
yt31109 2009-04-23
  • 打赏
  • 举报
回复
几位大哥能把具体的操作说明一下吗?
我也想学学
typer486 2009-04-23
  • 打赏
  • 举报
回复
这问题我现在刚好也遇到!
wesleyluo 2009-04-22
  • 打赏
  • 举报
回复
楼上的果然简单,既然可以装个程序,那就装返回ipconfig /all的信息程序吧,你这边接收就可以了。
甚至可以你这边控制发个消息,那边就返回。这样一来容易了。
jone7319 2009-04-22
  • 打赏
  • 举报
回复
在同一个网段就好办,利用API可以做到,如果不同网段就麻烦了!
  • 打赏
  • 举报
回复
[Quote=引用楼主 runall 的帖子:]
有一台机器配置了多个网卡,我只知道其中一个IP地址,想通过这个IP地址获取其他的IP,代码怎么写?注意程序不是运行在那台配了多个网卡的机器,而是另外一台机器。
[/Quote]

多个网卡,物理地址不一样,ip也不一样,让对方回ipconfig /all的信息给你吧。。。
xjq2003 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 GreensPan 的回复:]
在那台多IP的机上可以装一个软件吗?
[/Quote]
没有问题
greenspan 2009-04-21
  • 打赏
  • 举报
回复
在那台多IP的机上可以装一个软件吗?
oyljerry 2009-03-07
  • 打赏
  • 举报
回复
需要对方机器支持可以查询所有的ip等,需要对方机器返回这个信息给你
xabcxyz 2009-03-07
  • 打赏
  • 举报
回复
关注
hemiya 2009-03-07
  • 打赏
  • 举报
回复
可大可小的问题,细想一下问题需要考虑的挺多。
1、远程访问注册表
2、都在一个网段还算简单点,可以用ping的思路,但不是光根据ip去判断,还要加上计算机名。
3、不在一个网段,不知道。
你要整黑客程序么???
Visual Studio Code 是由微软开发的一款免费、开源、跨平台的现代化轻量级代码编辑器,自发布以来迅速成为全球开发者最受欢迎的工具之一。它结合了编辑器的轻便性和集成开发环境(IDE)的强大功能,支持多种编程语言和开发场景,核心特点: 1. 跨平台支持 可在 Windows、macOS 和 Linux 上运行,保持一致的用户体验。 2. 轻量级与高性能 启动速度快,占用资源少,适合处理大型项目或低配置设备。 3. 智能代码补全 内置 IntelliSense(智能感知),提供代码提示、参数信息、快速修复等功能,支持 JavaScript、TypeScript、Python、C++ 等主流语言。 4. 内置终端 直接在编辑器内打开集成终端(支持 PowerShell、CMD、Bash 等),方便执行命令行操作。 5. 调试工具 内置调试器,支持断点、变量监视、调用堆栈查看等,无需离开编辑器即可调试代码。 6. Git 集成 直接通过侧边栏管理 Git 仓库,支持提交、分支切换、冲突解决等操作。 7. 丰富的扩展生态系统 通过 Extensions Marketplace 可安装数千款插件,扩展功能包括: 语言支持:如 Java、Go、Rust 等。 主题与图标:自定义界面风格。 工具集成:如 Docker、Kubernetes、数据库连接等。 效率工具:如 REST Client、Live Server 等。 8. 自定义与主题 支持修改键盘快捷键、界面主题、文件图标等,打造个性化开发环境。 9. 多光标编辑 按住 Alt(Windows/Linux)或 Option(macOS)点击可添加多个光标,同时编辑多处代码。 10. 远程开发支持 通过 Remote - SSH、Remote - Containers 等扩展,可直接连接远程服务器或开发容器,实现无缝协作。

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧