All Projects → ccding → Go Stun

ccding / Go Stun

Licence: apache-2.0
A go implementation of the STUN client (RFC 3489 and RFC 5389)

Programming Languages

go
31211 projects - #10 most used programming language
golang
3204 projects

Projects that are alternatives of or similar to Go Stun

Gortcd
Fast TURN and STUN server: cross-platform, hot reload, flexible config
Stars: ✭ 358 (-14.76%)
Mutual labels:  webrtc, nat-traversal
Stun
Fast RFC 5389 STUN implementation in go
Stars: ✭ 451 (+7.38%)
Mutual labels:  webrtc, nat-traversal
Ice
WIP RFC 8445 ICE implementation in go
Stars: ✭ 95 (-77.38%)
Mutual labels:  webrtc, nat-traversal
Ice4j
A Java implementation of the ICE protocol
Stars: ✭ 332 (-20.95%)
Mutual labels:  webrtc, nat-traversal
Turn
RFC 5766 TURN implementation in go
Stars: ✭ 109 (-74.05%)
Mutual labels:  webrtc, nat-traversal
Webrtc.net
WebRTC for C# & C++/CLI
Stars: ✭ 340 (-19.05%)
Mutual labels:  webrtc
Quickblox Ios Sdk
QuickBlox iOS SDK for messaging and video calling
Stars: ✭ 373 (-11.19%)
Mutual labels:  webrtc
Filepizza
🍕 Peer-to-peer file transfers in your browser
Stars: ✭ 3,622 (+762.38%)
Mutual labels:  webrtc
Echoplexus
Socket.io powered chat, JavaScript REPL, whiteboard, and WebRTC calls
Stars: ✭ 392 (-6.67%)
Mutual labels:  webrtc
Media Server Go
WebRTC media server for go
Stars: ✭ 362 (-13.81%)
Mutual labels:  webrtc
Smoke
Turns a Web Browser into a Web Server with WebRTC
Stars: ✭ 326 (-22.38%)
Mutual labels:  webrtc
Eureca.io
eureca.io : a nodejs bidirectional RPC that can use WebSocket, WebRTC or XHR fallback as transport layers
Stars: ✭ 341 (-18.81%)
Mutual labels:  webrtc
Filedrop Web
📲 WebRTC file transfer - React/TypeScript front end.
Stars: ✭ 375 (-10.71%)
Mutual labels:  webrtc
Awesome Webrtc
A curated list of awesome WebRTC modules and resources.
Stars: ✭ 395 (-5.95%)
Mutual labels:  webrtc
Obs Studio Webrtc
This is a fork of OBS-studio with generic support for webrtc. It leverages the same webrtc implementation most browsers use.
Stars: ✭ 343 (-18.33%)
Mutual labels:  webrtc
React Native Webrtc
The WebRTC module for React Native
Stars: ✭ 3,724 (+786.67%)
Mutual labels:  webrtc
Flutter Webrtc Server
A simple WebRTC signaling server for flutter-webrtc.
Stars: ✭ 384 (-8.57%)
Mutual labels:  webrtc
Magnet Player
🎥 A place for streaming torrents directly from your browser
Stars: ✭ 346 (-17.62%)
Mutual labels:  webrtc
Electron Screen Recorder
A WebRTC screen recorder electron application
Stars: ✭ 343 (-18.33%)
Mutual labels:  webrtc
React Native Twilio Video Webrtc
Twilio Video (WebRTC) for React Native
Stars: ✭ 403 (-4.05%)
Mutual labels:  webrtc

go-stun

Build Status License GoDoc Go Report Card

go-stun is a STUN (RFC 3489, 5389) client implementation in golang (a.k.a. UDP hole punching).

RFC 3489: STUN - Simple Traversal of User Datagram Protocol (UDP) Through Network Address Translators (NATs)

RFC 5389: Session Traversal Utilities for NAT (STUN)

Use the Command Line Tool

Simply run these commands (if you have installed golang and set $GOPATH)

go get github.com/ccding/go-stun
go-stun

or clone this repo and run these commands

go build
./go-stun

You will get the output like

NAT Type: Full cone NAT
External IP Family: 1
External IP: 166.111.4.100
External Port: 23009

You can use -s flag to use another STUN server, and use -v to work on verbose mode.

> ./go-stun --help
Usage of ./go-stun:
  -s string
        server address (default "stun1.l.google.com:19302")
  -v    verbose mode

Use the Library

The library github.com/ccding/go-stun/stun is extremely easy to use -- just one line of code.

import "github.com/ccding/go-stun/stun"

func main() {
	nat, host, err := stun.NewClient().Discover()
}

More details please go to main.go and GoDoc

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].