Update all new Tasks
This commit is contained in:
parent
00a190b0a6
commit
91df62d461
5697 changed files with 93386 additions and 804 deletions
37
Task/Parse-an-IP-Address/J/parse-an-ip-address-1.j
Normal file
37
Task/Parse-an-IP-Address/J/parse-an-ip-address-1.j
Normal file
|
|
@ -0,0 +1,37 @@
|
|||
parseaddr=:3 :0
|
||||
if. '.' e. y do.
|
||||
if. +./'::' E. y do.
|
||||
parsehybrid y
|
||||
else.
|
||||
parseipv4 y
|
||||
end.
|
||||
else.
|
||||
parseipv6 y
|
||||
end.
|
||||
)
|
||||
|
||||
parseipv4=:3 :0
|
||||
'addr port'=. 2{.<;._2 y,'::'
|
||||
4,((4#256)#._&".;._1'.',addr),_".port
|
||||
)
|
||||
|
||||
parseipv6=:3 :0
|
||||
'addr port'=. 2{.<;._2 (y-.'['),']]'
|
||||
split=. I. '::' E. addr
|
||||
a1=. 8{. dfh;._2 (split {. addr),8#':'
|
||||
a2=._8{. dfh;._1 (8#':'),split }. addr
|
||||
6,(65536x#.a1+a2),_".port-.':'
|
||||
)
|
||||
|
||||
parsehybrid=:3 :0
|
||||
'kludge port'=. 2{.<;._2 (tolower y-.'['),']]'
|
||||
addr=. _1 {:: <;._2 kludge,':'
|
||||
assert. (kludge-:'::ffff:',addr) +. kludge-: '::',addr
|
||||
6,(16bffff00000000+1{parseipv4 addr),_".port-.':'
|
||||
)
|
||||
|
||||
fmt=:3 :0
|
||||
port=. ''
|
||||
((#y){.'v';'addr';'port')=. y
|
||||
'ipv',(":v),' ',(hfd addr),(#port)#' ',":port
|
||||
)
|
||||
12
Task/Parse-an-IP-Address/J/parse-an-ip-address-2.j
Normal file
12
Task/Parse-an-IP-Address/J/parse-an-ip-address-2.j
Normal file
|
|
@ -0,0 +1,12 @@
|
|||
fmt parseaddr '127.0.0.1'
|
||||
ipv4 7f000001
|
||||
fmt parseaddr '127.0.0.1:80'
|
||||
ipv4 7f000001 80
|
||||
fmt parseaddr '::1'
|
||||
ipv6 1
|
||||
fmt parseaddr '[::1]:80'
|
||||
ipv6 1 80
|
||||
fmt parseaddr '2605:2700:0:3::4713:93e3'
|
||||
ipv6 260527000000000300000000471393e3
|
||||
fmt parseaddr '[2605:2700:0:3::4713:93e3]:80'
|
||||
ipv6 260527000000000300000000471393e3 80
|
||||
Loading…
Add table
Add a link
Reference in a new issue