net.Addr
parent
728a1b8a01
commit
3fc35d7a32
|
@ -2,6 +2,7 @@ package arbitrary
|
||||||
|
|
||||||
import (
|
import (
|
||||||
"math/rand"
|
"math/rand"
|
||||||
|
"net"
|
||||||
"time"
|
"time"
|
||||||
)
|
)
|
||||||
|
|
||||||
|
@ -14,6 +15,11 @@ func Bool() bool {
|
||||||
return Default.Bool()
|
return Default.Bool()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// NetAddr returns an arbitrary net.Addr.
|
||||||
|
func NetAddr() net.Addr {
|
||||||
|
return Default.NetAddr()
|
||||||
|
}
|
||||||
|
|
||||||
// Password returns an arbitrary password.
|
// Password returns an arbitrary password.
|
||||||
func Password() string {
|
func Password() string {
|
||||||
return Default.Password()
|
return Default.Password()
|
||||||
|
|
|
@ -0,0 +1,85 @@
|
||||||
|
package arbitrary
|
||||||
|
|
||||||
|
import (
|
||||||
|
"fmt"
|
||||||
|
"net"
|
||||||
|
)
|
||||||
|
|
||||||
|
// NetAddr returns an arbitrary net.Addr.
|
||||||
|
func (arb T) NetAddr() net.Addr {
|
||||||
|
|
||||||
|
var network string
|
||||||
|
{
|
||||||
|
if arb.Bool() {
|
||||||
|
network = "tcp"
|
||||||
|
} else {
|
||||||
|
network = "udp"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var port uint16
|
||||||
|
{
|
||||||
|
port = uint16(arb.randomness.Intn(65536))
|
||||||
|
|
||||||
|
if 0 == arb.randomness.Intn(5) {
|
||||||
|
port = uint16(arb.randomness.Intn(1024))
|
||||||
|
}
|
||||||
|
|
||||||
|
if 0 == arb.randomness.Intn(4) {
|
||||||
|
port = uint16(arb.randomness.Intn(100))
|
||||||
|
}
|
||||||
|
|
||||||
|
if 0 == arb.randomness.Intn(30) {
|
||||||
|
port = 80
|
||||||
|
}
|
||||||
|
if 0 == arb.randomness.Intn(40) {
|
||||||
|
port = 79
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
var value string
|
||||||
|
func(){
|
||||||
|
|
||||||
|
value = fmt.Sprintf("%d.%d.%d.%d:%d", arb.randomness.Intn(256), arb.randomness.Intn(256), arb.randomness.Intn(256), arb.randomness.Intn(256), port)
|
||||||
|
|
||||||
|
if 0 == arb.randomness.Intn(16) {
|
||||||
|
value = fmt.Sprintf("127.0.0.1:%d", port)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if 0 == arb.randomness.Intn(16) {
|
||||||
|
value = fmt.Sprintf("192.168.0.1:%d", port)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if 0 == arb.randomness.Intn(7) {
|
||||||
|
value = fmt.Sprintf("%d.%d:%d", arb.randomness.Intn(256), arb.randomness.Intn(16777216), port)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
if 0 == arb.randomness.Intn(7) {
|
||||||
|
value = fmt.Sprintf("%d.%d.%d:%d", arb.randomness.Intn(256), arb.randomness.Intn(256), arb.randomness.Intn(65536), port)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
}()
|
||||||
|
|
||||||
|
return internalNetAddr{
|
||||||
|
network: network,
|
||||||
|
value: value,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
type internalNetAddr struct {
|
||||||
|
network string
|
||||||
|
value string
|
||||||
|
}
|
||||||
|
|
||||||
|
var _ net.Addr = internalNetAddr{}
|
||||||
|
|
||||||
|
func (receiver internalNetAddr) Network() string {
|
||||||
|
return receiver.network
|
||||||
|
}
|
||||||
|
|
||||||
|
func (receiver internalNetAddr) String() string {
|
||||||
|
return receiver.value
|
||||||
|
}
|
Loading…
Reference in New Issue