ホームページ  >  記事  >  バックエンド開発  >  golang int から IP へ

golang int から IP へ

WBOY
WBOYオリジナル
2023-05-10 09:38:06794ブラウズ

Golang では、整数型の IP アドレスを文字列型の IP アドレスに変換したり、逆に文字列型の IP アドレスを整数型の IP アドレスに変換したりする必要がよくあります。

Golang は、この変換を実現するための便利なライブラリ関数を提供します。整数型から文字列型へ、および文字列型から整数型への IP 変換は、以下の関数とメソッドを使用して完了できます。

整数型の IP アドレスを文字列型の IP アドレスに変換します:

func IntToIP(ip uint32) net.IP {
    return net.IPv4(byte(ip>>24), byte(ip>>16), byte(ip>>8), byte(ip))
}

この関数は、符号なし整数 IP アドレス (uint32) を IPv4 アドレスに変換し、net.IP 型を返します。構造。 String() メソッドを使用して、IP アドレスを文字列型に変換できます。

使用例:

ip := uint32(3232235876) // 对应IP地址为192.168.1.100
ipAddr := IntToIP(ip)
fmt.Println(ipAddr.String()) // output: "192.168.1.100"

文字列型IPアドレスを整数型IPアドレスに変換:

func IPToInt(ip net.IP) uint32 {
    return binary.BigEndian.Uint32(ip.To4())
}

この関数はIPアドレス(net.IP型)を受け入れます。パラメータを指定し、対応する符号なし整数型 (uint32) を返します。関数内では、binary.BigEndian.Uint32() 関数を使用して、IPv4 アドレスを 32 ビットの符号なし整数に変換します。

使用例:

ipStr := "192.168.1.100"
ipAddr := net.ParseIP(ipStr)
ipInt := IPToInt(ipAddr)
fmt.Println(ipInt) // output: 3232235876

まとめ:

今回は、Golang における整数型 IP アドレスから文字列型 IP アドレスへの変換と、IP アドレスの変換方法について説明しました。文字列型の IP アドレスを整数型の IP アドレスに変換します。この変換を実現するために、Golang が提供する net.IP タイプと binary.BigEndian.Uint32() 関数を使用しました。これは、ネットワーク プログラミングやシステム管理において非常に一般的な操作であり、これらの機能とメソッドを使用すると、Golang 開発をより便利かつ効率的に行うことができます。

以上がgolang int から IP への詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。