2012-10-11 5 views
2

ASCII IP 192.168.1.1을 호스트 바이트 순서로 변환해야합니다. 나는 성공없이 다음 함수를 사용하려고 시도했다.ASCII IP to Host 바이트 순서가 길음

import socket 
socket.ntohl(socket.inet_aton('192.168.1.1')) 

그러나 ntohl 함수는 문자열을 허용 할 수 없다는 오류가 발생하지만 int/long이 필요합니다.

답변

2

.inet_anon() 함수는 압축 된 32 비트 이진 값을 반환합니다.

import struct 
import socket 

socket.ntohl(struct.unpack('I', socket.inet_aton('192.168.1.1'))[0]) 
0
>>> socket.inet_aton.__doc__ 
'inet_aton(string) -> packed 32-bit IP representation\n\nConvert an IP address in string format (123.45.67.89) to the 32-bit packed\nbinary format used in low-level network functions.' 

import struct 
struct.unpack('>L', socket.inet_aton('192.168.1.1'))[0] 
: 당신은 정수로 그를 켭니다 struct module을 사용할 수 있습니다
관련 문제