我正在用C++编写一个使用网络套接字的程序.我需要知道计算机的IP地址是什么,所以我可以将它显示给用户.该程序必须在Windows和Linux上运行.
我听说过计算机可以有多个IP地址.我希望不同计算机上的其他程序可以用来连接到计算机.
这是我已经拥有的相关代码(变量在其他地方声明):
master = new fd_set;
FD_ZERO(master);
struct sockaddr_in my_addr;
listener = socket(PF_INET, SOCK_STREAM, 0);
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(port);
my_addr.sin_addr.s_addr = INADDR_ANY;
memset(my_addr.sin_zero, '\0', sizeof my_addr.sin_zero);
bind(listener, (struct sockaddr *)&my_addr, sizeof my_addr);
listen(listener, 10);
FD_SET(listener, master);
fdmax = listener;
Run Code Online (Sandbox Code Playgroud) 我过去做了很多UDP套接字编程,但只听说过通常保留的IP:
但是从IP2Location它说多播.是234.5.5.1实际的IP地址或保留?
这可能就是其中之一",为什么?" 问题,但我认为值得尝试.
如何从服务器端应用程序将客户端IP地址用作另一个网站的应用程序IP地址?基本思想是服务器端应用程序所做的任何工作都被视为客户端本身正在进行的工作,而不是服务器静态IP.
我不确定更改HTTP标头是否可行,但我可能错了.有没有关于此的文件?
谢谢,
凯尔
我现在看到了很多,jpg文件显示了您的IP地址。当然对您而言,对其他人而言,他们会看到自己的
例如:

(来源:net63.net)
这怎么可能?如果可能的话,是否也可以从图片中将IP登录到MySQL数据库?当我查看此消息时,我的IP是否被记录?
编辑:当然,当它在您的OWN服务器上时是可能的,但是如何直接将服务器上的图片链接到Nother上,如我在这里所做的那样,如何记录它呢?
我创建了一个存储IP地址的表.
CREATE TABLE ipdetails(
ip_address DECIMAL(16,4) NOT NULL,
vlan_id varchar(50)
);
但是,当我尝试插入表格时,它给了我一个错误:
INSERT INTO ipdetails VALUES (192.169.165.128, 'Sample1')
Run Code Online (Sandbox Code Playgroud)
无论如何,我可以在SQL表中存储一个带有大量小数位的数字,如果是这样,我应该使用什么数据类型?请指教.
提前致谢!
我需要在一些Visual Studio 2010解决方案中找到所有硬编码的IP地址.
如何使用Visual Studio 2010中的标准"查找"实用程序(Ctrl + Shift + F)执行此操作?
当我运行我的程序时,我收到系统崩溃"Segmentation fault"消息.
我想知道是否有办法确切地知道导致系统崩溃的指令(代码行)分段错误消息"
代码===>
#include "GeoIP.h"
int main()
{
FILE *f;
char ipAddress[30];
char expectedCountry[3];
char expectedCountry3[4];
const char *returnedCountry;
GeoIP *gi;
int failed = 0;
int test_num = 1;
int i;
for (i = 0; i < 2; ++i) {
if (0 == i) {
/* Read from filesystem, check for updated file */
gi = GeoIP_open("/usr/share/GeoIP/GeoIP.dat",
GEOIP_STANDARD | GEOIP_CHECK_CACHE);
} else {
/* Read from memory, faster but takes up more memory */
gi = GeoIP_open("/usr/share/GeoIP/GeoIP.dat", GEOIP_MEMORY_CACHE);
} …Run Code Online (Sandbox Code Playgroud) 如果所有IPv4地址始终被写为12位长且没有点,那么任何IP地址都将是明确的,因此仍然可以正常工作。
例如127.0.0.1可以写为127000000001
我认为这将使解析和使用IP地址变得更加容易。如果是这种情况,那么点十进制表示法的目的是什么?使用点十进制表示法有什么好处?
有人知道为什么我运行这段代码
IPHostEntry
IPHost = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName());
foreach
(var
ipAddress in
IPHost.AddressList)
{
IPlabel.Content = ipAddress;
}
Run Code Online (Sandbox Code Playgroud)
它以以下格式返回:2001:1:9d39:6 ......?
我希望以IPv4格式获取此格式:xxx.xxx.xxx.xxx
不确定他们是否有重复的帖子,我一直在寻找相当长的一段时间.我可能没有使用正确的搜索关键词
感谢任何帮助和/或发布你们可以提供的人.