Звучит так, как будто кто-то использует little-endian , а кто-то использует сетевой порядок байтов (big-endian) для упакованного значения.Например, последовательность октетов , компрометирующая целое число, AA,BB,CC,DD
в LE равна DD,CC,BB,AA
в BE / NBO - хороший симметричный обратный ход!
, поскольку IP-адрес (Int64)Документация конструктора гласит:
Предполагается, что значение Int64 находится в сетевом порядке байтов.
Я бы представлял , что ip2long
в PHP генерирует значение с прямым порядком байтов.Хорошо, что IPAddress
также принимает byte[]
за конструктор, теперь смазывайте эти локти ... просто передавайте байты в "правильном" порядке.
Счастливое кодирование.
Код в Как преобразовать int в байтовый массив с прямым порядком байтов? должен дать некоторые идеи.
Или, как указывает Джош, существует HostToNetworkOrder способ сделать это.