jpnic

package
v0.0.0-...-729b35f Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Sep 16, 2022 License: MIT Imports: 23 Imported by: 0

Documentation

Index

Constants

View Source
const (
	// 追加
	IPv4Register = 10
	IPv4Edit     = 11
	IPv6Register = 20
	IPv6Edit     = 21

	Infra         = 1
	User          = 2
	Reassignment1 = 3
	Reassignment2 = 4

	// エラーコードやステータスコード
	IPRegistrySystemError                = 1010
	NoCertificateOrUnableToGetMentorCode = 1020
	AuthorityError                       = 1021
	ApplicationProcessingError           = 1030
	InadequateParameters                 = 1099

	MissingRequiredFieldsError                    = 1001
	ExceedsStringError                            = 1002
	ViolationOfTypeError                          = 1003
	InadequateContentFormatError                  = 1004
	InadequateContentExistenceError               = 1005
	InadequateContentMultipleNetworksNotSpecified = 1006
	InadequateContentEtc                          = 1007

	NetWorkAndKindIDError        = 1101
	NetworkAndIPAddressError     = 1102
	NetworkAndNetworkNameError   = 1103
	NetworkAndInfraUserKindError = 1104
	NetworkAndOrgJP1Error        = 1105
	NetworkAndOrgJP2Error        = 1106
	NetworkAndOrgJP3Error        = 1107
	NetworkAndOrg1Error          = 1108
	NetworkAndOrg2Error          = 1109
	NetworkAndOrg3Error          = 1110
	NetworkAndZipCodeError       = 1111
	NetworkAndAddrJP1Error       = 1112
	NetworkAndAddrJP2Error       = 1113
	NetworkAndAddrJP3Error       = 1114
	NetworkAndAddr1Error         = 1115
	NetworkAndAddr2Error         = 1116
	NetworkAndAddr3Error         = 1117
	NetworkAndAbuseError         = 1118
	NetworkAndRyakusyoError      = 1119
	NetworkAndNameServerError    = 1120
	NetworkAndNotifyEmailError   = 1121
	NetworkAndPlanError          = 1122
	NetworkAndDeliNoError        = 1123
	NetworkAndReturnDateError    = 1124
	AdminAndJPNICHandleError     = 1200
	AdminAndNameJPError          = 1201
	AdminAndNameError            = 1202
	AdminAndEmailError           = 1203
	AdminAndOrgJP1Error          = 1204
	AdminAndOrgJP2Error          = 1205
	AdminAndOrgJP3Error          = 1206
	AdminAndOrg1Error            = 1207
	AdminAndOrg2Error            = 1208
	AdminAndOrg3Error            = 1209
	AdminAndZipCodeError         = 1210
	AdminAndAddrJP1Error         = 1211
	AdminAndAddrJP2Error         = 1212
	AdminAndAddrJP3Error         = 1213
	AdminAndAddr1Error           = 1214
	AdminAndAddr2Error           = 1215
	AdminAndAddr3Error           = 1216
	AdminAndDivisionJPError      = 1217
	AdminAndDivisionError        = 1218
	AdminAndPhoneError           = 1219
	AdminAndFaxError             = 1220
	AdminAndNotifyMailError      = 1221
	Tech1AndJPNICHandleError     = 1300
	Tech1AndNameJPError          = 1301
	Tech1AndNameError            = 1302
	Tech1AndEmailError           = 1303
	Tech1AndOrgJP1Error          = 1304
	Tech1AndOrgJP2Error          = 1305
	Tech1AndOrgJP3Error          = 1306
	Tech1AndOrg1Error            = 1307
	Tech1AndOrg2Error            = 1308
	Tech1AndOrg3Error            = 1309
	Tech1AndZipCodeError         = 1310
	Tech1AndAddrJP1Error         = 1311
	Tech1AndAddrJP2Error         = 1312
	Tech1AndAddrJP3Error         = 1313
	Tech1AndAddr1Error           = 1314
	Tech1AndAddr2Error           = 1315
	Tech1AndAddr3Error           = 1316
	Tech1AndDivisionJPError      = 1317
	Tech1AndDivisionError        = 1318
	Tech1AndPhoneError           = 1319
	Tech1AndFaxError             = 1320
	Tech1AndNotifyMailError      = 1321
	Tech2AndJPNICHandleError     = 1400
	Tech2AndNameJPError          = 1401
	Tech2AndNameError            = 1402
	Tech2AndEmailError           = 1403
	Tech2AndOrgJP1Error          = 1404
	Tech2AndOrgJP2Error          = 1405
	Tech2AndOrgJP3Error          = 1406
	Tech2AndOrg1Error            = 1407
	Tech2AndOrg2Error            = 1408
	Tech2AndOrg3Error            = 1409
	Tech2AndZipCodeError         = 1410
	Tech2AndAddrJP1Error         = 1411
	Tech2AndAddrJP2Error         = 1412
	Tech2AndAddrJP3Error         = 1413
	Tech2AndAddr1Error           = 1414
	Tech2AndAddr2Error           = 1415
	Tech2AndAddr3Error           = 1416
	Tech2AndDivisionJPError      = 1417
	Tech2AndDivisionError        = 1418
	Tech2AndPhoneError           = 1419
	Tech2AndFaxError             = 1420
	Tech2AndNotifyMailError      = 1421
	EtcCertIDError               = 1501
	EtcPasswordError             = 1502
)

StatusCodeは+1000をしているため、注意が必要

Variables

This section is empty.

Functions

func ErrorStatusText

func ErrorStatusText(code int) string

ErrorStatusの場合はcodeを自動で+1000する

func Marshal

func Marshal(input WebTransaction) (string, error)
func Search(resBody string) (InfoDetail, []ResourceAddressList, error)

func StatusText

func StatusText(code int) string

Types

type Config

type Config struct {
	URL       string
	CA        []byte
	P12Base64 string
	P12Pass   string
	DB        *sql.DB
}

func (*Config) GetResourceAll

func (c *Config) GetResourceAll() (ResourceAllInfo, string, error)

func (*Config) SearchIPv4

func (c *Config) SearchIPv4(search SearchIPv4) (*ResultSearchIPv4, error)

func (*Config) SearchIPv6

func (c *Config) SearchIPv6(search SearchIPv6) (*ResultSearchIPv6, error)

type Etc

type Etc struct {
	CertID   string `json:"cert_id"`
	Password string `json:"password"`
}

type InfoDetail

type InfoDetail struct {
	URL                  string            `json:"url"`
	IPAddress            string            `json:"ip_address"`
	Ryakusho             string            `json:"ryakusho"`
	Type                 string            `json:"type"`
	InfraUserKind        string            `json:"infra_user_kind"`
	NetworkName          string            `json:"network_name"`
	Org                  string            `json:"org"`
	OrgEn                string            `json:"org_en"`
	PostCode             string            `json:"post_code"`
	Address              string            `json:"address"`
	AddressEn            string            `json:"address_en"`
	AdminJPNICHandle     string            `json:"admin_jpnic_handle"`
	AdminJPNICHandleLink string            `json:"admin_jpnic_handle_link"`
	TechJPNICHandles     []TechJPNICHandle `json:"tech_jpnic_handles"`
	Abuse                string            `json:"abuse"`       // allocation only
	NameServer           []string          `json:"name_server"` // assignment and SUBA only
	DSRecord             string            `json:"ds_record"`   // assignment only
	NotifyAddress        string            `json:"notify_address"`
	DeliNo               string            `json:"deli_no"`
	RecepNo              string            `json:"recep_no"`
	AssignDate           string            `json:"assign_date"`
	ReturnDate           string            `json:"return_date"` //assignment and SUBA only
	UpdateDate           string            `json:"update_date"`
	UtilizationRatio     float64           `json:"utilization_ratio"` // allocation only
	UsedAddress          uint64            `json:"used_address"`      // allocation only
	AllAddress           uint64            `json:"all_address"`       // allocation only
}

type InfoIPv4

type InfoIPv4 struct {
	IPAddress   string     `json:"ip_address"`
	DetailLink  string     `json:"detail_link"`
	Size        string     `json:"size"`
	NetworkName string     `json:"network_name"`
	AssignDate  string     `json:"assign_date"`
	ReturnDate  string     `json:"return_date"`
	OrgName     string     `json:"org_name"`
	Ryakusho    string     `json:"ryakusho"`
	RecepNo     string     `json:"recep_no"`
	DeliNo      string     `json:"deli_no"`
	Type        string     `json:"type"`
	Division    string     `json:"infra_user_kind"`
	InfoDetail  InfoDetail `json:"info_detail"`
}

type InfoIPv6

type InfoIPv6 struct {
	IPAddress   string     `json:"ip_address"`
	DetailLink  string     `json:"detail_link"`
	NetworkName string     `json:"network_name"`
	AssignDate  string     `json:"assign_date"`
	ReturnDate  string     `json:"return_date"`
	OrgName     string     `json:"org_name"`
	Ryakusho    string     `json:"ryakusho"`
	RecepNo     string     `json:"recep_no"`
	DeliNo      string     `json:"deli_no"`
	KindID      string     `json:"kind_id"`
	InfoDetail  InfoDetail `json:"info_detail"`
}

type JPNICAdmin

type JPNICAdmin struct {
	JPNICHandle string `json:"jpnic_handle"`
	NameJP      string `json:"name_jp"`
	Name        string `json:"name"`
	Email       string `json:"email"`
	OrgJP1      string `json:"org_jp_1"`
	OrgJP2      string `json:"org_jp_2"`
	OrgJP3      string `json:"org_jp_3"`
	Org1        string `json:"org_1"`
	Org2        string `json:"org_2"`
	Org3        string `json:"org_3"`
	ZipCode     string `json:"zip_code"`
	AddrJP1     string `json:"addr_jp_1"`
	AddrJP2     string `json:"addr_jp_2"`
	AddrJP3     string `json:"addr_jp_3"`
	Addr1       string `json:"addr_1"`
	Addr2       string `json:"addr_2"`
	Addr3       string `json:"addr_3"`
	DivisionJP  string `json:"division_jp"`
	Division    string `json:"division"`
	Phone       string `json:"phone"`
	Fax         string `json:"fax"`
	NotifyMail  string `json:"notify_mail"`
}

type JPNICHandleDetail

type JPNICHandleDetail struct {
	IsJPNICHandle bool   `json:"is_jpnic_handle"`
	JPNICHandle   string `json:"jpnic_handle"`
	Name          string `json:"name"`
	NameEn        string `json:"name_en"`
	Email         string `json:"email"`
	Org           string `json:"org"`
	OrgEn         string `json:"org_en"`
	Division      string `json:"division"`
	DivisionEn    string `json:"division_en"`
	Title         string `json:"title"`
	TitleEn       string `json:"title_en"`
	Tel           string `json:"tel"`
	Fax           string `json:"fax"`
	NotifyAddress string `json:"notify_address"`
	UpdateDate    string `json:"update_date"`
}

type JPNICHandleInput

type JPNICHandleInput struct {
	IsJPNICHandle bool   `json:"is_jpnic_handle"`
	JPNICHandle   string `json:"jpnic_handle"`
	Name          string `json:"name"`
	NameEn        string `json:"name_en"`
	Email         string `json:"email"`
	Org           string `json:"org"`
	OrgEn         string `json:"org_en"`
	Address       string `json:"address"`
	AddressEn     string `json:"address_en"`
	ZipCode       string `json:"zip_code"`
	Division      string `json:"division"`
	DivisionEn    string `json:"division_en"`
	Title         string `json:"title"`
	TitleEn       string `json:"title_en"`
	Tel           string `json:"tel"`
	Fax           string `json:"fax"`
	NotifyMail    string `json:"notify_mail"`
	ApplyMail     string `json:"apply_mail"`
}

type JPNICTech

type JPNICTech struct {
	JPNICHandle string `json:"jpnic_handle"`
	NameJP      string `json:"name_jp"`
	Name        string `json:"name"`
	Email       string `json:"email"`
	OrgJP1      string `json:"org_jp_1"`
	OrgJP2      string `json:"org_jp_2"`
	OrgJP3      string `json:"org_jp_3"`
	Org1        string `json:"org_1"`
	Org2        string `json:"org_2"`
	Org3        string `json:"org_3"`
	ZipCode     string `json:"zip_code"`
	AddrJP1     string `json:"addr_jp_1"`
	AddrJP2     string `json:"addr_jp_2"`
	AddrJP3     string `json:"addr_jp_3"`
	Addr1       string `json:"addr_1"`
	Addr2       string `json:"addr_2"`
	Addr3       string `json:"addr_3"`
	DivisionJP  string `json:"division_jp"`
	Division    string `json:"division"`
	Phone       string `json:"phone"`
	Fax         string `json:"fax" `
	NotifyMail  string `json:"notify_mail"`
}

type Network

type Network struct {
	KindID        string       `json:"kind_id" post:"ipaddr"`
	IPAddress     string       `json:"ip_address" post:"ipaddr"`
	NetworkName   string       `json:"network_name"`
	InfraUserKind string       `json:"infra_user_kind"`
	OrgJP1        string       `json:"org_jp_1"`
	OrgJP2        string       `json:"org_jp_2"`
	OrgJP3        string       `json:"org_jp_3"`
	Org1          string       `json:"org_1"`
	Org2          string       `json:"org_2"`
	Org3          string       `json:"org_3"`
	ZipCode       string       `json:"zip_code"`
	AddrJP1       string       `json:"addr_jp_1"`
	AddrJP2       string       `json:"addr_jp_2"`
	AddrJP3       string       `json:"addr_jp_3"`
	Addr1         string       `json:"addr_1"`
	Addr2         string       `json:"addr_2"`
	Addr3         string       `json:"addr_3"`
	Abuse         string       `json:"abuse"`
	Ryakusyo      string       `json:"ryakusho"`
	NameServer    string       `json:"name_server"`
	NotifyEmail   string       `json:"notify_email"`
	Plan          string       `json:"plan"`
	DeliNo        string       `json:"deli_no"`
	ReturnDate    string       `json:"return_date"`
	JPNICAdmin    []JPNICAdmin `json:"jpnic_admin"`
	JPNICTech     []JPNICTech  `json:"jpnic_tech"`
}

type RequestInfo

type RequestInfo struct {
	RecepNo      string `json:"recep_no"`
	DeliNo       string `json:"deli_no"`
	ApplyKind    string `json:"apply_kind"`
	ApplyClass   string `json:"apply_class"`
	Applicant    string `json:"applicant"`
	ApplyDate    string `json:"apply_date"`
	CompleteDate string `json:"complete_date"`
	Status       string `json:"status"`
}

type ResourceAddressList

type ResourceAddressList struct {
	Address          string  `json:"address"`
	URL              string  `json:"URL"`
	Range            string  `json:"range"`
	Quantity         uint    `json:"quantity"`
	Status           string  `json:"status"`
	UtilizationRatio float64 `json:"utilization_ratio"`
	UsedAddress      uint64  `json:"used_address"`
	AllAddress       uint64  `json:"all_address"`
}

func Loop

func Loop(r *request, addressList []ResourceAddressList, infos *[]InfoDetail) (*ResourceAddressList, error)

type ResourceAllInfo

type ResourceAllInfo struct {
	ResourceManagerInfo ResourceManagerInfo `json:"resource_manager_info"`
	UtilizationRatio    float64             `json:"utilization_ratio"`
	UsedAddress         uint64              `json:"used_address"`
	AllAddress          uint64              `json:"all_address"`
	ADRatio             float64             `json:"ad_ratio"`
	ResourceCIDRBlock   []ResourceCIDRBlock `json:"resource_cidr_block"`
	ResourceCIDRBlocks  []InfoDetail        `json:"resource_cidr_blocks"`
	JPNICHandles        []JPNICHandleDetail `json:"jpnic_handles"`
}

type ResourceCIDRBlock

type ResourceCIDRBlock struct {
	Address          string  `json:"address"`
	URL              string  `json:"url"`
	AssignDate       string  `json:"assign_date"`
	UtilizationRatio float64 `json:"utilization_ratio"`
	UsedAddress      uint64  `json:"used_address"`
	AllAddress       uint64  `json:"all_address"`
}

type ResourceInfo

type ResourceInfo struct {
	ResourceManagerInfo ResourceManagerInfo `json:"resource_manager_info"`
	UtilizationRatio    float64             `json:"utilization_ratio"`
	UsedAddress         uint64              `json:"used_address"`
	AllAddress          uint64              `json:"all_address"`
	ADRatio             float64             `json:"ad_ratio"`
	ResourceCIDRBlock   []ResourceCIDRBlock `json:"resource_cidr_block"`
}

type ResourceManagerInfo

type ResourceManagerInfo struct {
	ResourceManagerNo         string `json:"resource_manager_no"`
	Ryakusyo                  string `json:"ryakusho"`
	Org                       string `json:"org"`
	OrgEn                     string `json:"org_en"`
	ZipCode                   string `json:"zip_code"`
	Address                   string `json:"address"`
	AddressEn                 string `json:"address_en"`
	Tel                       string `json:"tel"`
	Fax                       string `json:"fax"`
	ResourceManagementManager string `json:"resource_management_manager"`
	ContactPerson             string `json:"contact_person"`
	Inquiry                   string `json:"inquiry"`
	NotifyMail                string `json:"notify_mail"`
	AssigmentWindowSize       string `json:"assigment_window_size"`
	ManagementStartDate       string `json:"management_start_date"`
	ManagementEndDate         string `json:"management_end_date"`
	UpdateDate                string `json:"update_date"`
}

type Result

type Result struct {
	Err           error
	ResultErr     []error
	RecepNo       string
	AdmJPNICHdl   string
	Tech1JPNICHdl string
	Tech2JPNICHdl string
	Response      string
}

type ResultSearchIPv4

type ResultSearchIPv4 struct {
	IsOverList        bool
	InfoIPv4          []InfoIPv4
	JPNICHandleDetail []JPNICHandleDetail
}

type ResultSearchIPv6

type ResultSearchIPv6 struct {
	IsOverList        bool
	InfoIPv6          []InfoIPv6
	JPNICHandleDetail []JPNICHandleDetail
}

type ReturnIPv6List

type ReturnIPv6List struct {
	NetworkID     string `json:"network_id"`
	IPAddress     string `json:"ip_address"`
	NetworkName   string `json:"network_name"`
	InfraUserKind string `json:"infra_user_kind"`
	AssignDate    string `json:"assign_date"`
}

type SearchIPv4

type SearchIPv4 struct {
	IsDetail       bool     `json:"is_detail"` // 詳細情報の取得
	Option1        []string `json:"option_1"`  // Option1
	IPAddress      string   `json:"ip_address"`
	SizeStart      string   `json:"size_start"`
	SizeEnd        string   `json:"size_end"`
	NetworkName    string   `json:"network_name"`
	RegStart       string   `json:"reg_start"`
	RegEnd         string   `json:"reg_end"`
	ReturnStart    string   `json:"return_start"`
	ReturnEnd      string   `json:"return_end"`
	Org            string   `json:"org"`
	Ryakusho       string   `json:"ryakusho"`
	RecepNo        string   `json:"recep_no"`
	DeliNo         string   `json:"deli_no"`
	IsPA           bool     `json:"is_pa"`            // 割り振り
	IsAllocate     bool     `json:"is_allocate"`      // 割り振り
	IsAssignInfra  bool     `json:"is_assign_infra"`  //インフラ割当
	IsAssignUser   bool     `json:"is_assign_user"`   //ユーザ割当
	IsSubAllocate  bool     `json:"is_sub_allocate"`  //SUBA
	IsHistoricalPI bool     `json:"is_historical_pi"` //歴史的PI
	IsSpecialPI    bool     `json:"is_special_pi"`    //特殊用途PI
}

type SearchIPv6

type SearchIPv6 struct {
	Myself        bool     `json:"myself"`    // 自ASの情報を取得
	IsDetail      bool     `json:"is_detail"` // 詳細情報の取得
	Option1       []string `json:"option_1"`  // Option1
	IPAddress     string   `json:"ip_address"`
	SizeStart     string   `json:"size_start"`
	SizeEnd       string   `json:"size_end"`
	NetworkName   string   `json:"network_name"`
	RegStart      string   `json:"reg_start"`
	RegEnd        string   `json:"reg_end"`
	ReturnStart   string   `json:"return_start"`
	ReturnEnd     string   `json:"return_end"`
	Org           string   `json:"org"`
	Ryakusho      string   `json:"ryakusho"`
	RecepNo       string   `json:"recep_no"`
	DeliNo        string   `json:"deli_no"`
	IsAllocate    bool     `json:"is_allocate"`     // 割振
	IsAssignInfra bool     `json:"is_assign_infra"` //インフラ割当
	IsAssignUser  bool     `json:"is_assign_user"`  //ユーザ割当
	IsSubAllocate bool     `json:"is_sub_allocate"` //再割当
}

type TechJPNICHandle

type TechJPNICHandle struct {
	TechJPNICHandle     string `json:"tech_jpnic_handle"`
	TechJPNICHandleLink string `json:"tech_jpnic_handle_link"`
}

type WebTransaction

type WebTransaction struct {
	Network   Network     `json:"network"`
	AdminUser JPNICAdmin  `json:"admin_user"`
	TechUsers []JPNICTech `json:"tech_users"`
	Etc       Etc         `json:"etc"`
}

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL