関数を使用して char IP アドレスを変換しようとしていますinet_addr
が、「inet_addr」関数に渡す IP アドレスの先頭にゼロが(192.169.055.075)
あるため、「inet_addr」関数はこれを別の方法で解釈していると思います。先行ゼロを削除する方法について何か提案はありますか?
ありがとう
char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);
関数を使用して char IP アドレスを変換しようとしていますinet_addr
が、「inet_addr」関数に渡す IP アドレスの先頭にゼロが(192.169.055.075)
あるため、「inet_addr」関数はこれを別の方法で解釈していると思います。先行ゼロを削除する方法について何か提案はありますか?
ありがとう
char IPAddr[20]; //192.169.055.075
ulAddr = inet_addr(IPAddr);
代わりに使用できますinet_pton(3)
-先頭のゼロを8進数のプレフィックスとして解釈しません。
どうですか:
string addr("192.168.055.075");
replace( addr.begin(), addr.end(), '.', ' ' );
istringstream iss(addr);
int a,b,c,d;
iss >> a >> b >> c >> d;
ostringstream oss;
oss << a << '.' << b << '.' << c << '.' << d;
string addrWithoutLeadingZeros( oss.str() );