ctypes用のネットワーク関係の構造体
追記
C言語で書いた普通のものはこちらをどうぞ。 イーサネット関係のヘッダ
PyPyCapの作成途中で作ったんだけど、結局使わなかったやつ。 元々は構造体にキャストしてパースする予定だったんだけど、途中から添字直打ちに変更しちゃったのよねー。
このまま捨てるのもくやしいので、役立ててくれどこかの誰かっ
class st_ether_header(BigEndianStructure):
_fields_ = [
('ether_dhost', c_uint8 * 6),
('ether_shost', c_uint8 * 6),
('ether_type', c_ushort),
]
class st_ip_header(BigEndianStructure):
_fields_ = [
('ihl_and_version', c_uint8),
('tos', c_uint8),
('tot_len', c_uint16),
('id', c_uint16),
('frag_off', c_uint16),
('ttl', c_uint8),
('protocol', c_uint8),
('check', c_uint16),
('saddr', c_uint32),
('daddr', c_uint32),
]
class st_tcp_header(BigEndianStructure):
_fields_ = [
('source', c_uint16),
('dest', c_uint16),
('seq', c_uint32),
('ack_seq', c_uint32),
('flags', c_uint16),
('windows', c_uint16),
('check', c_uint16),
('urg_ptr', c_uint16),
]
class st_udp_header(BigEndianStructure):
_fields_ = [
('source', c_uint16),
('dest', c_uint16),
('len', c_uint16),
('check', c_uint16)
]