Servers and ip address

So here is my code
using UnityEngine;
using System.Collections;

public class NetworkManager2 : MonoBehaviour {
	public static NetworkManager2 Instance;


	// Use this for initialization
	void Start () {
		Instance = this;
		DontDestroyOnLoad (gameObject);
	}
	public void StartServer(int MaxPlayers, int Port, string ServerName, string IpAdress){
		Network.InitializeSecurity ();
		Network.InitializeServer (MaxPlayers, Port, true);
		MasterServer.RegisterHost ("Ap", ServerName,"");
		MasterServer.port = Port;
		MasterServer.ipAddress = IpAdress;
		Network.Connect(IpAdress,Port);
		Debug.Log (MasterServer.ipAddress + ":" + MasterServer.port);
	}
	void OnConnectedToServer() {
		Debug.Log("Connected to server");
	}

}

Now when I run this code I get the error: Failed to connect to master server at XXX:25565
xxx is where my ipaddress is! so I was wondering is there something wrong with the code or have I port forwarded wrong? I have it so the player can write in his ip and port but do they get the port from http://www.ip-finder.info/ or from their ipv4 and then port forward their port! Or do I have to use a unity server (i want them to be running the server on their pcs not unity) I also don’t have pro and am not using the -batch thingy!

First thing off, you actually call StartServer, don’t you?

I personally haven’t used MasterServer, but from what I see you try to MasterServer.RegisterHost before you actually specify, what the ip and port of the server are. I don’t think these credentials are anyhow hardcoded into Unity, so try:

MasterServer.port = <insert master servers port here>;
MasterServer.ipAddress = <insert master servers ip here>;
MasterServer.RegisterHost ("Ap", ServerName,"");

By the way, I guess you want to pass MasterServer class not your own credentials, but tell your machine how to connect to MasterServer, so you have to pass MasterServers ip and adress.

I hope it helps.